From c4ca6aff37cab48281aa68dee7a2252ebf87878c Mon Sep 17 00:00:00 2001 From: Andrea Falconi Date: Mon, 22 Aug 2022 19:46:16 +0200 Subject: [PATCH] wrap up port from https://github.com/c0c0n3/source-watcher --- .github/workflows/rebase.yaml | 21 + .github/workflows/release.yaml | 39 + .github/workflows/test.yaml | 37 + .gitignore | 18 + CODE_OF_CONDUCT.md | 3 + CONTRIBUTING.md | 82 + DCO | 36 + Dockerfile | 34 + Makefile | 92 + PROJECT | 3 + README.md | 91 +- _deployment_/kdu/ldap.ops.yaml | 10 + .../osm-pkgs/openldap_knf/openldap_vnfd.yaml | 18 + _deployment_/osm-pkgs/openldap_ns/README.md | 26 + .../osm-pkgs/openldap_ns/openldap_nsd.yaml | 22 + _deployment_/osmops.deploy.yaml | 59 + _deployment_/secret.yaml | 4 + _tmp/custom-osm-lcm/failed-steps.md | 177 + .../osm-install/install.failed.log | 1458 ++++++ _tmp/custom-osm-lcm/osm-install/install.log | 4051 +++++++++++++++++ _tmp/custom-osm-lcm/procedure.md | 287 ++ _tmp/osm-install-issues/README.md | 46 + .../broken-osm10.install-log.jun2022.log | 3688 +++++++++++++++ .../mp.osm10-ubuntu18.min-hw.md | 518 +++ _tmp/osm-install-issues/mp.osm10-ubuntu20.md | 485 ++ .../mp.osm10-ubuntu20.min-hw.md | 487 ++ _tmp/osm-install-issues/vbox-install.md | 180 + .../osm-install-issues/vbox.osm10-ubuntu18.md | 6 + _tmp/osm-install/email.full_install_osm.sh | 1870 ++++++++ _tmp/osm-install/gitlab.full_install_osm.sh | 1870 ++++++++ _tmp/osm-install/gitlab.install_osm.sh | 160 + _tmp/osm-install/gitweb.full_install_osm.sh | 1870 ++++++++ _tmp/osm-install/gitweb.install_osm.sh | 160 + _tmp/osm-install/install.log | 3047 +++++++++++++ _tmp/osm-install/multipass.install.sh | 34 + _tmp/osm-install/patched.full_install_osm.sh | 1870 ++++++++ _tmp/osm-install/patched.install_osm.sh | 160 + _tmp/osm-install/rel10.full_install_osm.sh | 1896 ++++++++ _tmp/osm-install/rel10.install_osm.sh | 160 + _tmp/osm-mitm/client.original.py | 161 + _tmp/osm-mitm/client.py | 162 + _tmp/osm-mitm/intercept.md | 30 + .../message-flow.ns-action.upgrade.md | 389 ++ .../message-flow.ns-action.upgrade2.md | 389 ++ _tmp/osm-mitm/message-flow.ns-create.md | 269 ++ _tmp/osm-mitm/message-flow.ns-create2.md | 203 + _tmp/osm-mitm/message-flows.md | 374 ++ _tmp/osm-mitm/nfpkg-create.pcap | Bin 0 -> 4405 bytes _tmp/osm-mitm/ns-action.upgrade.pcap | Bin 0 -> 33244 bytes _tmp/osm-mitm/ns-action.upgrade2.pcap | Bin 0 -> 34101 bytes _tmp/osm-mitm/ns-create.pcap | Bin 0 -> 15845 bytes _tmp/osm-mitm/ns-create2.pcap | Bin 0 -> 13338 bytes _tmp/osm-mitm/nspkg-create.pcap | Bin 0 -> 4924 bytes _tmp/osm-mitm/stunnel-mitm-proxy.conf | 18 + _tmp/osm-pkgs/README.md | 41 + _tmp/osm-pkgs/openldap_knf.tar.gz | Bin 0 -> 534 bytes _tmp/osm-pkgs/openldap_knf/checksums.txt | 1 + _tmp/osm-pkgs/openldap_knf/openldap_vnfd.yaml | 18 + _tmp/osm-pkgs/openldap_ns.tar.gz | Bin 0 -> 977 bytes _tmp/osm-pkgs/openldap_ns/README.md | 26 + _tmp/osm-pkgs/openldap_ns/checksums.txt | 2 + _tmp/osm-pkgs/openldap_ns/openldap_nsd.yaml | 22 + .../failed-attempt-to-use-targz.md | 1164 +++++ _tmp/osmops-packaging/http-calls.md | 109 + _tmp/osmops-packaging/knf-pkg-list.md | 53 + _tmp/osmops-packaging/nbi-pkg-handler.md | 54 + _tmp/osmops-packaging/ns-pkg-list.md | 56 + .../osmops-generated/openldap_knf.tar.gz | Bin 0 -> 486 bytes build/config/project.nix | 20 + build/config/version.nix | 40 + build/default.nix | 48 + build/pkgs/kubebuilder.nix | 84 + config/crd/kustomization.yaml | 0 config/default/kustomization.yaml | 9 + config/default/namespace.yaml | 6 + config/manager/deployment.yaml | 61 + config/manager/kustomization.yaml | 8 + config/rbac/kustomization.yaml | 7 + config/rbac/leader_election_role.yaml | 32 + config/rbac/leader_election_role_binding.yaml | 12 + config/rbac/role.yaml | 22 + config/rbac/role_binding.yaml | 25 + controllers/gitrepository_predicate.go | 67 + controllers/gitrepository_watcher.go | 139 + docs/arch/README.md | 54 + docs/arch/arch.context.png | Bin 0 -> 4973158 bytes docs/arch/arch.impl-overview.png | Bin 0 -> 2338598 bytes docs/arch/components.md | 0 docs/arch/deployment.md | 0 docs/arch/implementation.md | 0 docs/arch/info-model.md | 0 docs/arch/interaction.md | 0 docs/arch/intro.md | 207 + docs/arch/qa.md | 0 docs/arch/requirements.md | 0 docs/demos/README.md | 38 + docs/demos/demo.local-clusters.png | Bin 0 -> 1601642 bytes docs/demos/demo.malaga.png | Bin 0 -> 1910613 bytes docs/demos/dev-mode.md | 192 + docs/demos/local-clusters.md | 404 ++ docs/demos/malaga.md | 371 ++ docs/demos/malaga.osm-ui.1.png | Bin 0 -> 341086 bytes docs/demos/malaga.osm-ui.2.png | Bin 0 -> 319278 bytes docs/demos/osm-ui.1.png | Bin 0 -> 344471 bytes docs/demos/osm-ui.2.png | Bin 0 -> 322578 bytes docs/demos/osm-ui.3.png | Bin 0 -> 343122 bytes docs/demos/pack.md | 209 + docs/osm-pkgs.md | 192 + federico.md | 48 + go.mod | 17 + go.sum | 749 +++ hack/boilerplate.go.txt | 15 + main.go | 94 + osm_ops_config.yaml | 4 + osmops/cfg/fsvisitor.go | 94 + osmops/cfg/fsvisitor_test.go | 81 + osmops/cfg/store.go | 168 + osmops/cfg/store_test.go | 139 + .../test_1/deploy.me/secret.yaml | 4 + .../store_test_dir/test_1/osm_ops_config.yaml | 4 + osmops/cfg/store_test_dir/test_2/config.yaml | 5 + .../store_test_dir/test_3/osm_ops_config.yaml | 5 + .../store_test_dir/test_4/osm_ops_config.yaml | 7 + .../store_test_dir/test_5/osm-pkgs/dummy.yaml | 0 .../store_test_dir/test_5/osm_ops_config.yaml | 3 + osmops/cfg/store_test_dir/test_5/secret.yaml | 4 + .../test_6/deploy.me/ignore1.yaml | 3 + .../test_6/deploy.me/k1.ops.yaml | 8 + .../test_6/deploy.me/osm-pkgs/p1/dummy.yaml | 0 .../test_6/deploy.me/osm-pkgs/p2/dummy.yaml | 0 .../test_6/deploy.me/recurse/ignore2.yaml | 1 + .../test_6/deploy.me/recurse/k2.ops.yaml | 7 + .../test_6/deploy.me/recurse/k3.ops.yaml | 7 + .../test_6/deploy.me/secret.yaml | 4 + .../store_test_dir/test_6/osm_ops_config.yaml | 4 + osmops/cfg/yamlreader.go | 36 + osmops/cfg/yamlreader_test.go | 231 + osmops/cfg/yamltypes.go | 162 + osmops/cfg/yamltypes_test.go | 192 + osmops/engine/mocks_test.go | 174 + osmops/engine/reconcile.go | 174 + osmops/engine/reconcile_test.go | 202 + .../test_1/osm_ops_config.yaml | 7 + .../test_2/deploy.me/secret.yaml | 4 + .../test_2/osm_ops_config.yaml | 4 + .../test_3/deploy.me/k1.ops.yaml | 8 + .../test_3/deploy.me/k2.ops.yaml | 7 + .../test_3/deploy.me/k3.ops.yaml | 9 + .../test_3/deploy.me/secret.yaml | 4 + .../test_3/osm_ops_config.yaml | 4 + .../test_4/deploy.me/k1.ops.yaml | 8 + .../test_4/deploy.me/k2.ops.yaml | 7 + .../test_4/deploy.me/k3.ops.yaml | 9 + .../test_4/deploy.me/osm-pkgs/p1/dummy.yaml | 0 .../test_4/deploy.me/osm-pkgs/p2/dummy.yaml | 0 .../test_4/deploy.me/secret.yaml | 4 + .../test_4/osm_ops_config.yaml | 4 + .../test_5/deploy.me/k1.ops.yaml | 8 + .../test_5/deploy.me/k2.ops.yaml | 7 + .../test_5/deploy.me/k3.ops.yaml | 9 + .../test_5/deploy.me/osm-pkgs/p2/dummy.yaml | 0 .../test_5/deploy.me/osm-pkgs/p3/dummy.yaml | 0 .../test_5/deploy.me/secret.yaml | 4 + .../test_5/osm_ops_config.yaml | 4 + osmops/engine/tmp_test.go | 48 + osmops/nbic/auth.go | 61 + osmops/nbic/auth_test.go | 132 + osmops/nbic/client.go | 144 + osmops/nbic/client_test.go | 41 + osmops/nbic/enpoints.go | 84 + osmops/nbic/nbi_data_test.go | 695 +++ osmops/nbic/nbi_test.go | 157 + osmops/nbic/nsdescriptors.go | 53 + osmops/nbic/nsdescriptors_test.go | 71 + osmops/nbic/nsinstances.go | 202 + osmops/nbic/nsinstances_test.go | 337 ++ osmops/nbic/packages.go | 227 + osmops/nbic/packages_test.go | 190 + .../packages_test_dir/create_knf/some.yaml | 1 + .../packages_test_dir/create_ns/some.yaml | 1 + .../openldap_knf/openldap_vnfd.yaml | 18 + .../packages_test_dir/openldap_ns/README.md | 26 + .../openldap_ns/openldap_nsd.yaml | 22 + .../unsupported/openldap_vnfd.yaml | 18 + .../update_many_desc/openldap_knf/one.yaml | 1 + .../update_many_desc/openldap_knf/two.yaml | 1 + .../update_many_desc/openldap_ns/one.yaml | 1 + .../update_many_desc/openldap_ns/two.yaml | 1 + .../update_no_desc/openldap_knf/README.md | 2 + .../update_no_desc/openldap_ns/README.md | 2 + osmops/nbic/vimaccounts.go | 56 + osmops/nbic/vimaccounts_test.go | 71 + osmops/nbic/vnfdescriptors.go | 64 + osmops/nbic/vnfdescriptors_test.go | 87 + osmops/pkgr/build_pkg_test.go | 140 + .../openldap_knf/openldap_vnfd.yaml | 18 + .../openldap_nested/README.md | 26 + .../openldap_nested/knf/openldap_vnfd.yaml | 18 + .../openldap_nested/openldap_nsd.yaml | 22 + .../build_pkg_test_dir/openldap_ns/README.md | 26 + .../openldap_ns/openldap_nsd.yaml | 22 + osmops/pkgr/checksum.go | 37 + osmops/pkgr/checksum_test.go | 51 + osmops/pkgr/pack.go | 65 + osmops/pkgr/pack_test.go | 36 + osmops/pkgr/types.go | 134 + osmops/pkgr/types_test.go | 71 + osmops/util/bytez/buffer.go | 35 + osmops/util/bytez/buffer_test.go | 84 + osmops/util/file/paths.go | 114 + osmops/util/file/paths_test.go | 174 + osmops/util/file/visitor.go | 110 + osmops/util/file/visitor_test.go | 176 + osmops/util/file/visitor_test_dir/test_1/f1 | 1 + osmops/util/file/visitor_test_dir/test_1/f2 | 1 + .../util/file/visitor_test_dir/test_2/d1/f2 | 1 + .../util/file/visitor_test_dir/test_2/d1/f3 | 1 + .../file/visitor_test_dir/test_2/d2/d3/f6 | 1 + .../util/file/visitor_test_dir/test_2/d2/f4 | 1 + .../util/file/visitor_test_dir/test_2/d2/f5 | 1 + osmops/util/file/visitor_test_dir/test_2/f1 | 1 + osmops/util/http/builders.go | 157 + osmops/util/http/builders_test.go | 342 ++ osmops/util/http/client.go | 193 + osmops/util/http/client_test.go | 159 + osmops/util/http/reshandlers.go | 99 + osmops/util/http/reshandlers_test.go | 134 + osmops/util/http/sec/session.go | 94 + osmops/util/http/sec/session_test.go | 130 + osmops/util/http/sec/token.go | 54 + osmops/util/http/sec/token_test.go | 77 + osmops/util/tgz/ar_unar_test.go | 113 + osmops/util/tgz/archive.go | 47 + osmops/util/tgz/archive_test.go | 46 + osmops/util/tgz/archive_test_dir.tgz | Bin 0 -> 281 bytes osmops/util/tgz/archive_test_dir/d1/f2 | 1 + osmops/util/tgz/archive_test_dir/d1/f3 | 1 + osmops/util/tgz/archive_test_dir/d2/d3/f6 | 1 + osmops/util/tgz/archive_test_dir/d2/f4 | 1 + osmops/util/tgz/archive_test_dir/d2/f5 | 1 + osmops/util/tgz/archive_test_dir/f1 | 1 + osmops/util/tgz/reader.go | 89 + osmops/util/tgz/reader_test.go | 94 + osmops/util/tgz/rw_test.go | 98 + osmops/util/tgz/unarchive.go | 76 + osmops/util/tgz/unarchive_test.go | 122 + osmops/util/tgz/writer.go | 149 + osmops/util/tgz/writer_test.go | 152 + osmops/util/tgz/writeropts.go | 90 + osmops/util/tgz/writeropts_test.go | 118 + osmops/util/types.go | 178 + osmops/util/types_test.go | 230 + shell.nix | 1 + 253 files changed, 40847 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/rebase.yaml create mode 100644 .github/workflows/release.yaml create mode 100644 .github/workflows/test.yaml create mode 100644 .gitignore create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 DCO create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 PROJECT create mode 100644 _deployment_/kdu/ldap.ops.yaml create mode 100644 _deployment_/osm-pkgs/openldap_knf/openldap_vnfd.yaml create mode 100644 _deployment_/osm-pkgs/openldap_ns/README.md create mode 100644 _deployment_/osm-pkgs/openldap_ns/openldap_nsd.yaml create mode 100644 _deployment_/osmops.deploy.yaml create mode 100644 _deployment_/secret.yaml create mode 100644 _tmp/custom-osm-lcm/failed-steps.md create mode 100644 _tmp/custom-osm-lcm/osm-install/install.failed.log create mode 100644 _tmp/custom-osm-lcm/osm-install/install.log create mode 100644 _tmp/custom-osm-lcm/procedure.md create mode 100644 _tmp/osm-install-issues/README.md create mode 100644 _tmp/osm-install-issues/broken-osm10.install-log.jun2022.log create mode 100644 _tmp/osm-install-issues/mp.osm10-ubuntu18.min-hw.md create mode 100644 _tmp/osm-install-issues/mp.osm10-ubuntu20.md create mode 100644 _tmp/osm-install-issues/mp.osm10-ubuntu20.min-hw.md create mode 100644 _tmp/osm-install-issues/vbox-install.md create mode 100644 _tmp/osm-install-issues/vbox.osm10-ubuntu18.md create mode 100644 _tmp/osm-install/email.full_install_osm.sh create mode 100755 _tmp/osm-install/gitlab.full_install_osm.sh create mode 100644 _tmp/osm-install/gitlab.install_osm.sh create mode 100644 _tmp/osm-install/gitweb.full_install_osm.sh create mode 100644 _tmp/osm-install/gitweb.install_osm.sh create mode 100644 _tmp/osm-install/install.log create mode 100755 _tmp/osm-install/multipass.install.sh create mode 100755 _tmp/osm-install/patched.full_install_osm.sh create mode 100755 _tmp/osm-install/patched.install_osm.sh create mode 100644 _tmp/osm-install/rel10.full_install_osm.sh create mode 100644 _tmp/osm-install/rel10.install_osm.sh create mode 100644 _tmp/osm-mitm/client.original.py create mode 100644 _tmp/osm-mitm/client.py create mode 100644 _tmp/osm-mitm/intercept.md create mode 100644 _tmp/osm-mitm/message-flow.ns-action.upgrade.md create mode 100644 _tmp/osm-mitm/message-flow.ns-action.upgrade2.md create mode 100644 _tmp/osm-mitm/message-flow.ns-create.md create mode 100644 _tmp/osm-mitm/message-flow.ns-create2.md create mode 100644 _tmp/osm-mitm/message-flows.md create mode 100644 _tmp/osm-mitm/nfpkg-create.pcap create mode 100644 _tmp/osm-mitm/ns-action.upgrade.pcap create mode 100644 _tmp/osm-mitm/ns-action.upgrade2.pcap create mode 100644 _tmp/osm-mitm/ns-create.pcap create mode 100644 _tmp/osm-mitm/ns-create2.pcap create mode 100644 _tmp/osm-mitm/nspkg-create.pcap create mode 100644 _tmp/osm-mitm/stunnel-mitm-proxy.conf create mode 100644 _tmp/osm-pkgs/README.md create mode 100644 _tmp/osm-pkgs/openldap_knf.tar.gz create mode 100644 _tmp/osm-pkgs/openldap_knf/checksums.txt create mode 100644 _tmp/osm-pkgs/openldap_knf/openldap_vnfd.yaml create mode 100644 _tmp/osm-pkgs/openldap_ns.tar.gz create mode 100644 _tmp/osm-pkgs/openldap_ns/README.md create mode 100644 _tmp/osm-pkgs/openldap_ns/checksums.txt create mode 100644 _tmp/osm-pkgs/openldap_ns/openldap_nsd.yaml create mode 100644 _tmp/osmops-packaging/failed-attempt-to-use-targz.md create mode 100644 _tmp/osmops-packaging/http-calls.md create mode 100644 _tmp/osmops-packaging/knf-pkg-list.md create mode 100644 _tmp/osmops-packaging/nbi-pkg-handler.md create mode 100644 _tmp/osmops-packaging/ns-pkg-list.md create mode 100755 _tmp/osmops-packaging/osmops-generated/openldap_knf.tar.gz create mode 100644 build/config/project.nix create mode 100644 build/config/version.nix create mode 100644 build/default.nix create mode 100644 build/pkgs/kubebuilder.nix create mode 100644 config/crd/kustomization.yaml create mode 100644 config/default/kustomization.yaml create mode 100644 config/default/namespace.yaml create mode 100644 config/manager/deployment.yaml create mode 100644 config/manager/kustomization.yaml create mode 100644 config/rbac/kustomization.yaml create mode 100644 config/rbac/leader_election_role.yaml create mode 100644 config/rbac/leader_election_role_binding.yaml create mode 100644 config/rbac/role.yaml create mode 100644 config/rbac/role_binding.yaml create mode 100644 controllers/gitrepository_predicate.go create mode 100644 controllers/gitrepository_watcher.go create mode 100644 docs/arch/README.md create mode 100644 docs/arch/arch.context.png create mode 100644 docs/arch/arch.impl-overview.png create mode 100644 docs/arch/components.md create mode 100644 docs/arch/deployment.md create mode 100644 docs/arch/implementation.md create mode 100644 docs/arch/info-model.md create mode 100644 docs/arch/interaction.md create mode 100644 docs/arch/intro.md create mode 100644 docs/arch/qa.md create mode 100644 docs/arch/requirements.md create mode 100644 docs/demos/README.md create mode 100644 docs/demos/demo.local-clusters.png create mode 100644 docs/demos/demo.malaga.png create mode 100644 docs/demos/dev-mode.md create mode 100644 docs/demos/local-clusters.md create mode 100644 docs/demos/malaga.md create mode 100644 docs/demos/malaga.osm-ui.1.png create mode 100644 docs/demos/malaga.osm-ui.2.png create mode 100644 docs/demos/osm-ui.1.png create mode 100644 docs/demos/osm-ui.2.png create mode 100644 docs/demos/osm-ui.3.png create mode 100644 docs/demos/pack.md create mode 100644 docs/osm-pkgs.md create mode 100644 federico.md create mode 100644 go.mod create mode 100644 go.sum create mode 100644 hack/boilerplate.go.txt create mode 100644 main.go create mode 100644 osm_ops_config.yaml create mode 100644 osmops/cfg/fsvisitor.go create mode 100644 osmops/cfg/fsvisitor_test.go create mode 100644 osmops/cfg/store.go create mode 100644 osmops/cfg/store_test.go create mode 100644 osmops/cfg/store_test_dir/test_1/deploy.me/secret.yaml create mode 100644 osmops/cfg/store_test_dir/test_1/osm_ops_config.yaml create mode 100644 osmops/cfg/store_test_dir/test_2/config.yaml create mode 100644 osmops/cfg/store_test_dir/test_3/osm_ops_config.yaml create mode 100644 osmops/cfg/store_test_dir/test_4/osm_ops_config.yaml create mode 100644 osmops/cfg/store_test_dir/test_5/osm-pkgs/dummy.yaml create mode 100644 osmops/cfg/store_test_dir/test_5/osm_ops_config.yaml create mode 100644 osmops/cfg/store_test_dir/test_5/secret.yaml create mode 100644 osmops/cfg/store_test_dir/test_6/deploy.me/ignore1.yaml create mode 100644 osmops/cfg/store_test_dir/test_6/deploy.me/k1.ops.yaml create mode 100644 osmops/cfg/store_test_dir/test_6/deploy.me/osm-pkgs/p1/dummy.yaml create mode 100644 osmops/cfg/store_test_dir/test_6/deploy.me/osm-pkgs/p2/dummy.yaml create mode 100644 osmops/cfg/store_test_dir/test_6/deploy.me/recurse/ignore2.yaml create mode 100644 osmops/cfg/store_test_dir/test_6/deploy.me/recurse/k2.ops.yaml create mode 100644 osmops/cfg/store_test_dir/test_6/deploy.me/recurse/k3.ops.yaml create mode 100644 osmops/cfg/store_test_dir/test_6/deploy.me/secret.yaml create mode 100644 osmops/cfg/store_test_dir/test_6/osm_ops_config.yaml create mode 100644 osmops/cfg/yamlreader.go create mode 100644 osmops/cfg/yamlreader_test.go create mode 100644 osmops/cfg/yamltypes.go create mode 100644 osmops/cfg/yamltypes_test.go create mode 100644 osmops/engine/mocks_test.go create mode 100644 osmops/engine/reconcile.go create mode 100644 osmops/engine/reconcile_test.go create mode 100644 osmops/engine/reconcile_test_dir/test_1/osm_ops_config.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_2/deploy.me/secret.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_2/osm_ops_config.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_3/deploy.me/k1.ops.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_3/deploy.me/k2.ops.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_3/deploy.me/k3.ops.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_3/deploy.me/secret.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_3/osm_ops_config.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_4/deploy.me/k1.ops.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_4/deploy.me/k2.ops.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_4/deploy.me/k3.ops.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_4/deploy.me/osm-pkgs/p1/dummy.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_4/deploy.me/osm-pkgs/p2/dummy.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_4/deploy.me/secret.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_4/osm_ops_config.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_5/deploy.me/k1.ops.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_5/deploy.me/k2.ops.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_5/deploy.me/k3.ops.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_5/deploy.me/osm-pkgs/p2/dummy.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_5/deploy.me/osm-pkgs/p3/dummy.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_5/deploy.me/secret.yaml create mode 100644 osmops/engine/reconcile_test_dir/test_5/osm_ops_config.yaml create mode 100644 osmops/engine/tmp_test.go create mode 100644 osmops/nbic/auth.go create mode 100644 osmops/nbic/auth_test.go create mode 100644 osmops/nbic/client.go create mode 100644 osmops/nbic/client_test.go create mode 100644 osmops/nbic/enpoints.go create mode 100644 osmops/nbic/nbi_data_test.go create mode 100644 osmops/nbic/nbi_test.go create mode 100644 osmops/nbic/nsdescriptors.go create mode 100644 osmops/nbic/nsdescriptors_test.go create mode 100644 osmops/nbic/nsinstances.go create mode 100644 osmops/nbic/nsinstances_test.go create mode 100644 osmops/nbic/packages.go create mode 100644 osmops/nbic/packages_test.go create mode 100644 osmops/nbic/packages_test_dir/create_knf/some.yaml create mode 100644 osmops/nbic/packages_test_dir/create_ns/some.yaml create mode 100644 osmops/nbic/packages_test_dir/openldap_knf/openldap_vnfd.yaml create mode 100644 osmops/nbic/packages_test_dir/openldap_ns/README.md create mode 100644 osmops/nbic/packages_test_dir/openldap_ns/openldap_nsd.yaml create mode 100644 osmops/nbic/packages_test_dir/unsupported/openldap_vnfd.yaml create mode 100644 osmops/nbic/packages_test_dir/update_many_desc/openldap_knf/one.yaml create mode 100644 osmops/nbic/packages_test_dir/update_many_desc/openldap_knf/two.yaml create mode 100644 osmops/nbic/packages_test_dir/update_many_desc/openldap_ns/one.yaml create mode 100644 osmops/nbic/packages_test_dir/update_many_desc/openldap_ns/two.yaml create mode 100644 osmops/nbic/packages_test_dir/update_no_desc/openldap_knf/README.md create mode 100644 osmops/nbic/packages_test_dir/update_no_desc/openldap_ns/README.md create mode 100644 osmops/nbic/vimaccounts.go create mode 100644 osmops/nbic/vimaccounts_test.go create mode 100644 osmops/nbic/vnfdescriptors.go create mode 100644 osmops/nbic/vnfdescriptors_test.go create mode 100644 osmops/pkgr/build_pkg_test.go create mode 100644 osmops/pkgr/build_pkg_test_dir/openldap_knf/openldap_vnfd.yaml create mode 100644 osmops/pkgr/build_pkg_test_dir/openldap_nested/README.md create mode 100644 osmops/pkgr/build_pkg_test_dir/openldap_nested/knf/openldap_vnfd.yaml create mode 100644 osmops/pkgr/build_pkg_test_dir/openldap_nested/openldap_nsd.yaml create mode 100644 osmops/pkgr/build_pkg_test_dir/openldap_ns/README.md create mode 100644 osmops/pkgr/build_pkg_test_dir/openldap_ns/openldap_nsd.yaml create mode 100644 osmops/pkgr/checksum.go create mode 100644 osmops/pkgr/checksum_test.go create mode 100644 osmops/pkgr/pack.go create mode 100644 osmops/pkgr/pack_test.go create mode 100644 osmops/pkgr/types.go create mode 100644 osmops/pkgr/types_test.go create mode 100644 osmops/util/bytez/buffer.go create mode 100644 osmops/util/bytez/buffer_test.go create mode 100644 osmops/util/file/paths.go create mode 100644 osmops/util/file/paths_test.go create mode 100644 osmops/util/file/visitor.go create mode 100644 osmops/util/file/visitor_test.go create mode 100644 osmops/util/file/visitor_test_dir/test_1/f1 create mode 100644 osmops/util/file/visitor_test_dir/test_1/f2 create mode 100644 osmops/util/file/visitor_test_dir/test_2/d1/f2 create mode 100644 osmops/util/file/visitor_test_dir/test_2/d1/f3 create mode 100644 osmops/util/file/visitor_test_dir/test_2/d2/d3/f6 create mode 100644 osmops/util/file/visitor_test_dir/test_2/d2/f4 create mode 100644 osmops/util/file/visitor_test_dir/test_2/d2/f5 create mode 100644 osmops/util/file/visitor_test_dir/test_2/f1 create mode 100644 osmops/util/http/builders.go create mode 100644 osmops/util/http/builders_test.go create mode 100644 osmops/util/http/client.go create mode 100644 osmops/util/http/client_test.go create mode 100644 osmops/util/http/reshandlers.go create mode 100644 osmops/util/http/reshandlers_test.go create mode 100644 osmops/util/http/sec/session.go create mode 100644 osmops/util/http/sec/session_test.go create mode 100644 osmops/util/http/sec/token.go create mode 100644 osmops/util/http/sec/token_test.go create mode 100644 osmops/util/tgz/ar_unar_test.go create mode 100644 osmops/util/tgz/archive.go create mode 100644 osmops/util/tgz/archive_test.go create mode 100644 osmops/util/tgz/archive_test_dir.tgz create mode 100644 osmops/util/tgz/archive_test_dir/d1/f2 create mode 100644 osmops/util/tgz/archive_test_dir/d1/f3 create mode 100644 osmops/util/tgz/archive_test_dir/d2/d3/f6 create mode 100644 osmops/util/tgz/archive_test_dir/d2/f4 create mode 100644 osmops/util/tgz/archive_test_dir/d2/f5 create mode 100644 osmops/util/tgz/archive_test_dir/f1 create mode 100644 osmops/util/tgz/reader.go create mode 100644 osmops/util/tgz/reader_test.go create mode 100644 osmops/util/tgz/rw_test.go create mode 100644 osmops/util/tgz/unarchive.go create mode 100644 osmops/util/tgz/unarchive_test.go create mode 100644 osmops/util/tgz/writer.go create mode 100644 osmops/util/tgz/writer_test.go create mode 100644 osmops/util/tgz/writeropts.go create mode 100644 osmops/util/tgz/writeropts_test.go create mode 100644 osmops/util/types.go create mode 100644 osmops/util/types_test.go create mode 100644 shell.nix diff --git a/.github/workflows/rebase.yaml b/.github/workflows/rebase.yaml new file mode 100644 index 0000000..2875f97 --- /dev/null +++ b/.github/workflows/rebase.yaml @@ -0,0 +1,21 @@ +name: rebase + +on: + pull_request: + types: [opened] + issue_comment: + types: [created] + +jobs: + rebase: + if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase') && (github.event.comment.author_association == 'CONTRIBUTOR' || github.event.comment.author_association == 'MEMBER' || github.event.comment.author_association == 'OWNER') + runs-on: ubuntu-latest + steps: + - name: Checkout the latest code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Automatic Rebase + uses: cirrus-actions/rebase@1.3.1 + env: + GITHUB_TOKEN: ${{ secrets.PAT }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..6a05d03 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,39 @@ +name: Create and publish a Docker image + +on: [release] + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + build-and-push-image: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Log in to the Container registry + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + - name: Build and push Docker image + uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..aaf7509 --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,37 @@ +name: test + +on: + pull_request: + push: + branches: + - main + +jobs: + unit: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Restore Go cache + uses: actions/cache@v1 + with: + path: ~/go/pkg/mod + key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go- + - name: Setup Go + uses: actions/setup-go@v2 + with: + go-version: 1.16.x + - name: Setup Kubebuilder + uses: fluxcd/pkg/actions/kubebuilder@main + - name: Run tests + run: make test + env: + KUBEBUILDER_ASSETS: ${{ github.workspace }}/kubebuilder/bin + - name: Check if working tree is dirty + run: | + if [[ $(git diff --stat) != '' ]]; then + echo 'run make test and commit changes' + exit 1 + fi diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..01259c6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib + +# Test binary, built with `go test -c` +*.test + +# Output of the go coverage tool +*.out + +# Local build output dir +bin/ + +# IDE files +.vscode diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..0bb442a --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,3 @@ +## Code of Conduct + +Source watcher follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..81891b7 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,82 @@ +# Contributing + +Source watcher is [Apache 2.0 licensed](LICENSE) and accepts contributions +via GitHub pull requests. This document outlines some of the conventions on +to make it easier to get your contribution accepted. + +We gratefully welcome improvements to issues and documentation as well as to +code. + +## Certificate of Origin + +By contributing to this project you agree to the Developer Certificate of +Origin (DCO). This document was created by the Linux Kernel community and is a +simple statement that you, as a contributor, have the legal right to make the +contribution. + +We require all commits to be signed. By signing off with your signature, you +certify that you wrote the patch or otherwise have the right to contribute the +material by the rules of the [DCO](DCO): + +`Signed-off-by: Jane Doe ` + +The signature must contain your real name +(sorry, no pseudonyms or anonymous contributions) +If your `user.name` and `user.email` are configured in your Git config, +you can sign your commit automatically with `git commit -s`. + +## Communications + +The project uses Slack: To join the conversation, simply join the +[CNCF](https://slack.cncf.io/) Slack workspace and use the +[#flux](https://cloud-native.slack.com/messages/flux/) channel. + +The developers use a mailing list to discuss development as well. +Simply subscribe to [flux-dev on cncf.io](https://lists.cncf.io/g/cncf-flux-dev) +to join the conversation (this will also add an invitation to your +Google calendar for our [Flux +meeting](https://docs.google.com/document/d/1l_M0om0qUEN_NNiGgpqJ2tvsF2iioHkaARDeh6b70B0/edit#)). + +### How to run the test suite + +Prerequisites: +* go >= 1.16 +* kubebuilder >= 3.0 +* kustomize >= 4.0 + +You can run the unit tests by simply doing + +```bash +make test +``` + +## Acceptance policy + +These things will make a PR more likely to be accepted: + +- a well-described requirement +- tests for new code +- tests for old code! +- new code and tests follow the conventions in old code and tests +- a good commit message (see below) +- all code must abide [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments) +- names should abide [What's in a name](https://talks.golang.org/2014/names.slide#1) +- code must build on both Linux and Darwin, via plain `go build` +- code should have appropriate test coverage and tests should be written + to work with `go test` + +In general, we will merge a PR once one maintainer has endorsed it. +For substantial changes, more people may become involved, and you might +get asked to resubmit the PR or divide the changes into more than one PR. + +### Format of the Commit Message + +For Kustomize Controller we prefer the following rules for good commit messages: + +- Limit the subject to 50 characters and write as the continuation + of the sentence "If applied, this commit will ..." +- Explain what and why in the body, if more than a trivial change; + wrap it at 72 characters. + +The [following article](https://chris.beams.io/posts/git-commit/#seven-rules) +has some more helpful advice on documenting your work. diff --git a/DCO b/DCO new file mode 100644 index 0000000..716561d --- /dev/null +++ b/DCO @@ -0,0 +1,36 @@ +Developer Certificate of Origin +Version 1.1 + +Copyright (C) 2004, 2006 The Linux Foundation and its contributors. +660 York Street, Suite 102, +San Francisco, CA 94110 USA + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + + +Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +(b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +(c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +(d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fa1ae62 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,34 @@ +FROM golang:1.16-alpine as builder + +WORKDIR /workspace + +# copy modules manifests +COPY go.mod go.mod +COPY go.sum go.sum + +# cache modules +RUN go mod download + +# copy source code +COPY main.go main.go +COPY controllers/ controllers/ +COPY osmops/ osmops/ + +# build +RUN CGO_ENABLED=0 go build -a -o source-watcher main.go + +FROM alpine:3.13 + +RUN apk add --no-cache ca-certificates tini + +COPY --from=builder /workspace/source-watcher /usr/local/bin/ + +# Create minimal nsswitch.conf file to prioritize the usage of /etc/hosts over DNS queries. +# https://github.com/gliderlabs/docker-alpine/issues/367#issuecomment-354316460 +RUN [ ! -e /etc/nsswitch.conf ] && echo 'hosts: files dns' > /etc/nsswitch.conf + +RUN addgroup -S controller && adduser -S controller -G controller + +USER controller + +ENTRYPOINT [ "/sbin/tini", "--", "source-watcher" ] diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7983111 --- /dev/null +++ b/Makefile @@ -0,0 +1,92 @@ + +# Image URL to use all building/pushing image targets +IMG ?= ghcr.io/martel-innovate/osmops:latest +# Produce CRDs that work back to Kubernetes 1.16 +CRD_OPTIONS ?= crd:crdVersions=v1 + +# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set) +ifeq (,$(shell go env GOBIN)) +GOBIN=$(shell go env GOPATH)/bin +else +GOBIN=$(shell go env GOBIN) +endif + +all: manager + +# Run tests +test: generate fmt vet manifests + go test ./... -coverprofile cover.out + +# Build manager binary +manager: generate fmt vet + go build -o bin/manager main.go + +# Run against the configured Kubernetes cluster in ~/.kube/config +run: generate fmt vet manifests + go run ./main.go + +# Install CRDs into a cluster +install: manifests + kustomize build config/crd +# kustomize build config/crd | kubectl apply -f - +# ^ potentially harmful. what if you're connected to the wrong cluster?! + +# Uninstall CRDs from a cluster +uninstall: manifests + kustomize build config/crd +# kustomize build config/crd | kubectl delete -f - +# ^ potentially harmful. what if you're connected to the wrong cluster?! + +# Deploy controller in the configured Kubernetes cluster in ~/.kube/config +deploy: manifests + cd config/manager && kustomize edit set image source-watcher=${IMG} + kustomize build config/default +# kustomize build config/default | kubectl apply -f - +# ^ potentially harmful. what if you're connected to the wrong cluster?! + +# Generate manifests e.g. CRD, RBAC etc. +manifests: controller-gen + $(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=source-reader webhook paths="./..." output:crd:artifacts:config=config/crd/bases + +# Run go fmt against code +fmt: + go fmt ./... + +# Run go vet against code +vet: + go vet ./... + +# Generate code +generate: controller-gen + $(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..." + +# Build the docker image +docker-build: test + docker build . -t ${IMG} + +# Push the docker image +# TODO: get rid of this mess. Use GH actions when moving to own repo. +# NOTE. docker login stores the token in osxkeychain, logout removes it from +# there. Not sure why GH recommends using their tool (gh), since as you can +# see the token is stored unencrypted and with no password protection! +docker-push: + grep oauth_token ~/.config/gh/hosts.yml | sed 's/.*oauth_token: //' | docker login ghcr.io -u c0c0n3 --password-stdin + docker push ${IMG} + docker logout ghcr.io + +# find or download controller-gen +# download controller-gen if necessary +controller-gen: +ifeq (, $(shell which controller-gen)) + @{ \ + set -e ;\ + CONTROLLER_GEN_TMP_DIR=$$(mktemp -d) ;\ + cd $$CONTROLLER_GEN_TMP_DIR ;\ + go mod init tmp ;\ + go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.5.0 ;\ + rm -rf $$CONTROLLER_GEN_TMP_DIR ;\ + } +CONTROLLER_GEN=$(GOBIN)/controller-gen +else +CONTROLLER_GEN=$(shell which controller-gen) +endif diff --git a/PROJECT b/PROJECT new file mode 100644 index 0000000..c764c70 --- /dev/null +++ b/PROJECT @@ -0,0 +1,3 @@ +domain: fluxcd.io +repo: github.com/fluxcd/source-watcher +version: "2" diff --git a/README.md b/README.md index 8a2a998..b071a3c 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,89 @@ -# osmops -GitOps for Open Source MANO, powered by the FluxCD Toolkit (https://toolkit.fluxcd.io) +OSM Ops +------- +> GitOps for Open Source MANO. + +OSM Ops is a cloud-native micro-service to implement GitOps workflows +within [Open Source MANO][osm] (OSM). The basic idea is to describe +the state of an OSM deployment through version-controlled text files +hosted in an online Git repository. Each file declares a desired instantiation +and runtime configuration for some of the services in a specified OSM +cluster. Collectively, the files at a given Git revision describe the +deployment state of the these services at a certain point in time. +OSM Ops monitors the Git repository in order to automatically reconcile +the desired deployment state with the actual live state of the OSM +cluster. OSM Ops is implemented as a [Kubernetes][k8s] operator that +plugs into the [FluxCD][flux] framework in order to leverage the rich +Kubernetes/FluxCD GitOps ecosystem. + +This software has been developed by [Martel Innovate][martel] as part +of the [Affordable5G][a5g] EU-funded project. OSM Ops serves the specific +needs of Affordable5G and is not intended as a replacement or alternative +to OSM's own deployment and operations tools, rather as a complement. + + +### Documentation + +The [introduction section][arch.intro] of the [software architecture +document][arch] is the best starting point to learn about OSM Ops: +it is a short read but presents the fundamental ideas clearly with +the help of diagrams. The reader interested in gaining a deeper technical +understanding of OSM Ops is invited to consider the remainder of the +document too. [Hands-on tutorials][demos] demonstrate the core features +and exemplify deployment scenarios. + + +### Features at a glance + +- **Declarative approach**. Edit YAML files to specify which KNFs should + be in the target OSM cluster and their configuration. OSM Ops determines + whether to create a new KNF or update an existing one, then issues the + OSM commands to realise your configuration. OSM Ops can also create or + update OSM packages. +- **GitOps workflow**. Keep your OSM Ops YAML files in an online Git + repository. OSM Ops automatically detects new commits and reconciles + the deployment state declared in the YAML files with the actual live + state of the OSM cluster. +- **Multi-repo/multi-cluster**. All the OSM Ops files in a Git repository + target the same OSM cluster. However, you can have OSM Ops monitor multiple + repositories if you need to manage several distinct OSM clusters at once. +- **Secure handling of OSM credentials**. Use Kubernetes secrets to provide + the username, password and project for OSM Ops to connect to the target + OSM cluster. +- **Repo file filters**. Optionally specify filters to match OSM Ops YAML + files in your repository. Speeds up processing if there are a large number + of files (e.g. source code, documents, etc.) that OSM Ops should not read. +- **Efficient batch processing**. Up to 6x faster and 89% bandwidth savings + when processing many KNF create/update operations compared to using the + `osm` CLI—thanks to caching (NS descriptors, VIM accounts, etc.) and + smart management of authorisation token lifecycle. + + +### Project status + +- Early days. But the code is solid (modular, close to 100% test coverage) + and is a good foundation for further development. +- Successfully deployed and run the Malaga Nov 2021 demo; ready for the + Malaga end-to-end tests in Q3 2022. +- Only create/update KNF available. No rollbacks—delete not implemented. + But you can still rollback to a previous Git version as long as the set + of KNFs is the same in both versions. +- OSM packaging functionality partially relies on naming conventions. A + reasonable choice given the current phase of the project, but it could + be improved in later iterations. ([Details][pkg].) + + + +[arch]: ./docs/arch/README.md +[arch.intro]: ./docs/arch/intro.md +[a5g]: https://www.affordable5g.eu/ + "Affordable5G" +[demos]: ./docs/demos/README.md +[flux]: https://fluxcd.io/ + "Flux - the GitOps family of projects" +[k8s]: https://en.wikipedia.org/wiki/Kubernetes + "Kubernetes" +[martel]: https://www.martel-innovate.com/ + "Martel Innovate" +[osm]: https://osm.etsi.org/ + "Open Source MANO" +[pkg]: ./docs/osm-pkgs.md \ No newline at end of file diff --git a/_deployment_/kdu/ldap.ops.yaml b/_deployment_/kdu/ldap.ops.yaml new file mode 100644 index 0000000..e07539d --- /dev/null +++ b/_deployment_/kdu/ldap.ops.yaml @@ -0,0 +1,10 @@ +kind: NsInstance +name: ldap +description: Demo LDAP NS instance +nsdName: openldap_ns +vnfName: openldap +vimAccountName: mylocation1 +kdu: + name: ldap + params: + replicaCount: "1" diff --git a/_deployment_/osm-pkgs/openldap_knf/openldap_vnfd.yaml b/_deployment_/osm-pkgs/openldap_knf/openldap_vnfd.yaml new file mode 100644 index 0000000..41795bf --- /dev/null +++ b/_deployment_/osm-pkgs/openldap_knf/openldap_vnfd.yaml @@ -0,0 +1,18 @@ +vnfd: + description: KNF with single KDU using a helm-chart for openldap version 1.2.7 + df: + - id: default-df + ext-cpd: + - id: mgmt-ext + k8s-cluster-net: mgmtnet + id: openldap_knf + k8s-cluster: + nets: + - id: mgmtnet + kdu: + - name: ldap + helm-chart: stable/openldap:1.2.7 + mgmt-cp: mgmt-ext + product-name: openldap_knf + provider: Telefonica + version: '1.0' diff --git a/_deployment_/osm-pkgs/openldap_ns/README.md b/_deployment_/osm-pkgs/openldap_ns/README.md new file mode 100644 index 0000000..8424611 --- /dev/null +++ b/_deployment_/osm-pkgs/openldap_ns/README.md @@ -0,0 +1,26 @@ +# SIMPLE OPEN-LDAP CHART + +Descriptors that installs an openldap version 1.2.1 chart in a K8s cluster + +There is one VNF (openldap\_vnf) with only one KDU. + +There is one NS that connects the VNF to a mgmt network + +## Onboarding and instantiation + +```bash +osm nfpkg-create openldap_knf.tar.gz +osm nspkg-create openldap_ns.tar.gz +osm ns-create --ns_name ldap --nsd_name openldap_ns --vim_account | --ssh_keys ${HOME}/.ssh/id_rsa.pub +``` + +### Instantiation option + +Some parameters could be passed during the instantiation. + +* replicaCount: Number of Open LDAP replicas that will be created + +```bash +osm ns-create --ns_name ldap --nsd_name openldap_ns --vim_account | --config '{additionalParamsForVnf: [{"member-vnf-index": "openldap", "additionalParams": {"replicaCount": "2"}}]}' +``` + diff --git a/_deployment_/osm-pkgs/openldap_ns/openldap_nsd.yaml b/_deployment_/osm-pkgs/openldap_ns/openldap_nsd.yaml new file mode 100644 index 0000000..b995164 --- /dev/null +++ b/_deployment_/osm-pkgs/openldap_ns/openldap_nsd.yaml @@ -0,0 +1,22 @@ +nsd: + nsd: + - description: NS consisting of a single KNF openldap_knf connected to mgmt network + designer: OSM + df: + - id: default-df + vnf-profile: + - id: openldap + virtual-link-connectivity: + - constituent-cpd-id: + - constituent-base-element-id: openldap + constituent-cpd-id: mgmt-ext + virtual-link-profile-id: mgmtnet + vnfd-id: openldap_knf + id: openldap_ns + name: openldap_ns + version: '1.0' + virtual-link-desc: + - id: mgmtnet + mgmt-network: 'true' + vnfd-id: + - openldap_knf diff --git a/_deployment_/osmops.deploy.yaml b/_deployment_/osmops.deploy.yaml new file mode 100644 index 0000000..209e2c0 --- /dev/null +++ b/_deployment_/osmops.deploy.yaml @@ -0,0 +1,59 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + control-plane: controller + name: source-watcher + namespace: flux-system +spec: + replicas: 1 + selector: + matchLabels: + app: source-watcher + template: + metadata: + annotations: + prometheus.io/port: "8080" + prometheus.io/scrape: "true" + labels: + app: source-watcher + spec: + serviceAccountName: source-controller + terminationGracePeriodSeconds: 10 + containers: + - args: + - --log-level=debug + - --log-encoding=console + env: + - name: RUNTIME_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: ghcr.io/martel-innovate/osmops:latest + imagePullPolicy: IfNotPresent + name: manager + ports: + - containerPort: 8080 + name: http-prom + resources: + limits: + cpu: 1000m + memory: 1Gi + requests: + cpu: 50m + memory: 64Mi + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + volumeMounts: + - name: osmops + mountPath: "/etc/osmops" + readOnly: true + - mountPath: /tmp + name: tmp + volumes: + - name: osmops + secret: + secretName: nbi-connection + - name: tmp + emptyDir: {} diff --git a/_deployment_/secret.yaml b/_deployment_/secret.yaml new file mode 100644 index 0000000..46f94b3 --- /dev/null +++ b/_deployment_/secret.yaml @@ -0,0 +1,4 @@ +hostname: host.ie:8008 +project: boetie +user: vans +password: '*' diff --git a/_tmp/custom-osm-lcm/failed-steps.md b/_tmp/custom-osm-lcm/failed-steps.md new file mode 100644 index 0000000..28527d8 --- /dev/null +++ b/_tmp/custom-osm-lcm/failed-steps.md @@ -0,0 +1,177 @@ +LCM fails +--------- +> epic! + +So building & deploying a custom OSM LCM image has been lots of fun! +Here's what didn't work and possible workarounds. + + +### OSM 11 VM + +Had to build it a couple of times. Some of the install script tasks +[failed][failed-osm-install] but the script went ahead. Eventually +I ended up with a broken OSM install in my hands---some OSM services +didn't get deployed to the K8s cluster. Not sure what the cause of +those random failure is, possibly lack of enough compute resources +and the install procedure not being robust enough to cater for slow +boxes? + + +### LCM build failures - part 1 + +If you bump into this lovely error about Docker permissions when +building the LCM image artifacts + +```console +% devops/tools/local-build.sh --module common,IM,N2VC,LCM,NBI stage-2 +Performing Stage 2 +Building common +Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&shmsize=0&t=common-stage2&target=&ulimits=null&version=1": dial unix /var/run/docker.sock: connect: permission denied +docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied. +See 'docker run --help'. +Failed to build common +``` + +It could be because you've got to log out the VM after installing +OSM. To be on the safe side, it's actually best to shut down and +then restart the VM after installation. + + +### LCM build failures - part 2 + +So going past the first hurdle was relatively easy. But then the +command to build the LCM image artifacts took about 50 mins and +I didn't get a clean build in the end: + +```console +% devops/tools/local-build.sh --module common,IM,N2VC,RO,LCM,NBI stage-2 +... +dpkg-deb: building package 'python3-n2vc' in '../python3-n2vc_11.0.0rc1.post36+g23c4455-1_all.deb'. + dpkg-genbuildinfo + dpkg-genchanges >../n2vc_11.0.0rc1.post36+g23c4455-1_amd64.changes +dpkg-genchanges: info: including full source code in upload + dpkg-source --after-build . +dpkg-source: info: using options from n2vc-11.0.0rc1.post36+g23c4455/debian/source/options: --extend-diff-ignore=\.egg-info$ +dpkg-buildpackage: info: full upload (original source is included) +dist run-test: commands[3] | sh -c 'rm n2vc/requirements.txt' +____________________________________________________________ summary _____________________________________________________________ + dist: commands succeeded + congratulations :) +renamed './deb_dist/python3-n2vc_11.0.0rc1.post36+g23c4455-1_all.deb' -> '/home/ubuntu/snap/qhttp/common/python3-n2vc_11.0.0rc1.post36+g23c4455-1_all.deb' +Directory /home/ubuntu/workspace/RO does not exist +% echo $? +1 +``` + +Going ahead to the next step anyway, just in case the build failure +wasn't critical... + +```console +% devops/tools/local-build.sh --module LCM stage-3 +... +Step 14/57 : RUN curl $PYTHON3_OSM_LCM_URL -o osm_lcm.deb + ---> Running in 92e6b11d10dc +curl: no URL specified! +curl: try 'curl --help' or 'curl --manual' for more information +The command '/bin/sh -c curl $PYTHON3_OSM_LCM_URL -o osm_lcm.deb' returned a non-zero code: 2 +Failed to build lcm +``` + +Oh deary, deary. Maybe I shouldn't have gone ahead. + + +### LCM build failures - part 3 + +So it turns out the reason for this error message + +> Directory /home/ubuntu/workspace/RO does not exist + +is that the command + +```console +% devops/tools/local-build.sh --module common,IM,N2VC,RO,LCM,NBI stage-2 +``` + +tries to build an OSM component called RO. In fact there's an RO repo. +Since the command also tries building NBI, we're going to clone and set +up these two repos too: + +```console +% git clone https://osm.etsi.org/gerrit/osm/RO +% git clone https://osm.etsi.org/gerrit/osm/NBI +% for r in IM LCM N2VC NBI RO common devops; do cp commit-msg $r/.git/hooks/; done +``` + +Now running again the build command got me past the directory error, +but the build seems to get into an infinite loop when installing RO +deps + +```console +... +dist_ro_vim_vmware installdeps: -r/build/requirements.txt, -r/build/requirements-dist.txt +``` + +it just sits there for half an hour seemingly making no progress. +Could it be an issue with VMWare deps? Well, I killed the process +and ran the command again. And again the process got stuck on installing +deps + +```console +... +dist_ro_vim_vmware installdeps: -r/build/requirements.txt, -r/build/requirements-dist.txt +... +dist_ro_sdn_odl_of installdeps: -r/build/requirements.txt, -r/build/requirements-dist.txt +``` + +Notice how this time the VMWare deps step succeeded while the build +got stuck on another component. As a last ditch attempt I tried building +just the RO component + +```console +% devops/tools/local-build.sh --module RO stage-2 +``` + +But the build got stuck again on another `installdeps` step + +```console +... +dist_ro_vim_vmware installdeps: -r/build/requirements.txt, -r/build/requirements-dist.txt +... +dist_ro_sdn_odl_of installdeps: -r/build/requirements.txt, -r/build/requirements-dist.txt +... +dist_ro_sdn_floodlight_of installdeps: -r/build/requirements.txt, -r/build/requirements-dist.txt +``` + +I ran it once more and it got stack on an `installdeps` step of a +component that worked in all previous runs + +```console +... +dist_ro_vim_openvim installdeps: -r/build/requirements.txt, -r/build/requirements-dist.txt +``` + +Deadlock bug? + + +### LCM build failures - part 4 + +So there's no way we can build RO. All we can do is exclude it from +the build and hope we can still build LCM + +```console +% devops/tools/local-build.sh --module common,IM,N2VC,LCM,NBI stage-2 +``` + +With this tweak the build succeeds and we can also go past the LCM +URL failure in creating the Docker image + +```console +% devops/tools/local-build.sh --module LCM stage-3 +``` + +The command runs cleanly and tags `opensourcemano/lcm:devel`. + + + + +[failed-osm-install]: ./osm-install/install.failed.log diff --git a/_tmp/custom-osm-lcm/osm-install/install.failed.log b/_tmp/custom-osm-lcm/osm-install/install.failed.log new file mode 100644 index 0000000..a41959d --- /dev/null +++ b/_tmp/custom-osm-lcm/osm-install/install.failed.log @@ -0,0 +1,1458 @@ + Checking required packages to add ETSI OSM debian repo: software-properties-common apt-transport-https +OK +Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB] +Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease +Get:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB] +Get:4 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease [4086 B] +Get:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB] +Get:6 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [8570 kB] +Get:7 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [2309 kB] +Get:8 http://security.ubuntu.com/ubuntu bionic-security/main Translation-en [402 kB] +Get:9 http://archive.ubuntu.com/ubuntu bionic/universe Translation-en [4941 kB] +Get:10 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable/devops amd64 Packages [483 B] +Get:11 http://security.ubuntu.com/ubuntu bionic-security/restricted amd64 Packages [797 kB] +Get:12 http://security.ubuntu.com/ubuntu bionic-security/restricted Translation-en [109 kB] +Get:13 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [1212 kB] +Get:14 http://security.ubuntu.com/ubuntu bionic-security/universe Translation-en [279 kB] +Get:15 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [19.0 kB] +Get:16 http://security.ubuntu.com/ubuntu bionic-security/multiverse Translation-en [3836 B] +Get:17 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [151 kB] +Get:18 http://archive.ubuntu.com/ubuntu bionic/multiverse Translation-en [108 kB] +Get:19 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [2650 kB] +Get:20 http://archive.ubuntu.com/ubuntu bionic-updates/main Translation-en [492 kB] +Get:21 http://archive.ubuntu.com/ubuntu bionic-updates/restricted amd64 Packages [829 kB] +Get:22 http://archive.ubuntu.com/ubuntu bionic-updates/restricted Translation-en [114 kB] +Get:23 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1826 kB] +Get:24 http://archive.ubuntu.com/ubuntu bionic-updates/universe Translation-en [396 kB] +Get:25 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [24.9 kB] +Get:26 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse Translation-en [6012 B] +Get:27 http://archive.ubuntu.com/ubuntu bionic-backports/main amd64 Packages [10.8 kB] +Get:28 http://archive.ubuntu.com/ubuntu bionic-backports/main Translation-en [5016 B] +Get:29 http://archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages [11.6 kB] +Get:30 http://archive.ubuntu.com/ubuntu bionic-backports/universe Translation-en [5864 B] +Fetched 25.5 MB in 8s (3116 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:3 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:4 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Hit:5 http://security.ubuntu.com/ubuntu bionic-security InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Hit:1 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:3 http://security.ubuntu.com/ubuntu bionic-security InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + osm-devops +0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded. +Need to get 731 kB of archives. +After this operation, 5661 kB of additional disk space will be used. +Get:1 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable/devops amd64 osm-devops all 11.0.3-1 [731 kB] +Fetched 731 kB in 0s (2394 kB/s) +Selecting previously unselected package osm-devops. +(Reading database ... 60493 files and directories currently installed.) +Preparing to unpack .../osm-devops_11.0.3-1_all.deb ... +Unpacking osm-devops (11.0.3-1) ... +Setting up osm-devops (11.0.3-1) ... +## Wed Jun 29 14:39:38 CEST 2022 source: INFO: logging sourced +## Wed Jun 29 14:39:38 CEST 2022 source: INFO: config sourced +## Wed Jun 29 14:39:38 CEST 2022 source: INFO: container sourced +## Wed Jun 29 14:39:38 CEST 2022 source: INFO: git_functions sourced +## Wed Jun 29 14:39:38 CEST 2022 source: INFO: track sourced +Checking required packages: git wget curl tar snapd +/. +/etc +/etc/bash_completion.d +/etc/bash_completion.d/git-prompt +/usr +/usr/bin +/usr/bin/git +/usr/bin/git-shell +/usr/bin/git-upload-pack +/usr/lib +/usr/lib/git-core +/usr/lib/git-core/git +/usr/lib/git-core/git-add--interactive +/usr/lib/git-core/git-bisect +/usr/lib/git-core/git-credential-cache +/usr/lib/git-core/git-credential-cache--daemon +/usr/lib/git-core/git-credential-store +/usr/lib/git-core/git-daemon +/usr/lib/git-core/git-difftool--helper +/usr/lib/git-core/git-fast-import +/usr/lib/git-core/git-filter-branch +/usr/lib/git-core/git-http-backend +/usr/lib/git-core/git-http-fetch +/usr/lib/git-core/git-http-push +/usr/lib/git-core/git-imap-send +/usr/lib/git-core/git-instaweb +/usr/lib/git-core/git-merge-octopus +/usr/lib/git-core/git-merge-one-file +/usr/lib/git-core/git-merge-resolve +/usr/lib/git-core/git-mergetool +/usr/lib/git-core/git-mergetool--lib +/usr/lib/git-core/git-parse-remote +/usr/lib/git-core/git-quiltimport +/usr/lib/git-core/git-rebase +/usr/lib/git-core/git-rebase--am +/usr/lib/git-core/git-rebase--interactive +/usr/lib/git-core/git-rebase--merge +/usr/lib/git-core/git-remote-http +/usr/lib/git-core/git-remote-testsvn +/usr/lib/git-core/git-request-pull +/usr/lib/git-core/git-sh-i18n +/usr/lib/git-core/git-sh-i18n--envsubst +/usr/lib/git-core/git-sh-prompt +/usr/lib/git-core/git-sh-setup +/usr/lib/git-core/git-shell +/usr/lib/git-core/git-show-index +/usr/lib/git-core/git-stash +/usr/lib/git-core/git-submodule +/usr/lib/git-core/git-subtree +/usr/lib/git-core/git-upload-pack +/usr/lib/git-core/git-web--browse +/usr/lib/git-core/mergetools +/usr/lib/git-core/mergetools/araxis +/usr/lib/git-core/mergetools/bc +/usr/lib/git-core/mergetools/bc3 +/usr/lib/git-core/mergetools/codecompare +/usr/lib/git-core/mergetools/deltawalker +/usr/lib/git-core/mergetools/diffmerge +/usr/lib/git-core/mergetools/diffuse +/usr/lib/git-core/mergetools/ecmerge +/usr/lib/git-core/mergetools/emerge +/usr/lib/git-core/mergetools/examdiff +/usr/lib/git-core/mergetools/gvimdiff +/usr/lib/git-core/mergetools/gvimdiff2 +/usr/lib/git-core/mergetools/gvimdiff3 +/usr/lib/git-core/mergetools/kdiff3 +/usr/lib/git-core/mergetools/kompare +/usr/lib/git-core/mergetools/meld +/usr/lib/git-core/mergetools/opendiff +/usr/lib/git-core/mergetools/p4merge +/usr/lib/git-core/mergetools/tkdiff +/usr/lib/git-core/mergetools/tortoisemerge +/usr/lib/git-core/mergetools/vimdiff +/usr/lib/git-core/mergetools/vimdiff2 +/usr/lib/git-core/mergetools/vimdiff3 +/usr/lib/git-core/mergetools/winmerge +/usr/lib/git-core/mergetools/xxdiff +/usr/share +/usr/share/bash-completion +/usr/share/bash-completion/completions +/usr/share/bash-completion/completions/git +/usr/share/doc +/usr/share/doc/git +/usr/share/doc/git/NEWS.Debian.gz +/usr/share/doc/git/README.Debian +/usr/share/doc/git/README.emacs +/usr/share/doc/git/README.md +/usr/share/doc/git/README.source +/usr/share/doc/git/RelNotes +/usr/share/doc/git/RelNotes/1.5.0.1.txt +/usr/share/doc/git/RelNotes/1.5.0.2.txt +/usr/share/doc/git/RelNotes/1.5.0.3.txt +/usr/share/doc/git/RelNotes/1.5.0.4.txt +/usr/share/doc/git/RelNotes/1.5.0.5.txt +/usr/share/doc/git/RelNotes/1.5.0.6.txt +/usr/share/doc/git/RelNotes/1.5.0.7.txt +/usr/share/doc/git/RelNotes/1.5.0.txt +/usr/share/doc/git/RelNotes/1.5.1.1.txt +/usr/share/doc/git/RelNotes/1.5.1.2.txt +/usr/share/doc/git/RelNotes/1.5.1.3.txt +/usr/share/doc/git/RelNotes/1.5.1.4.txt +/usr/share/doc/git/RelNotes/1.5.1.5.txt +/usr/share/doc/git/RelNotes/1.5.1.6.txt +/usr/share/doc/git/RelNotes/1.5.1.txt +/usr/share/doc/git/RelNotes/1.5.2.1.txt +/usr/share/doc/git/RelNotes/1.5.2.2.txt +/usr/share/doc/git/RelNotes/1.5.2.3.txt +/usr/share/doc/git/RelNotes/1.5.2.4.txt +/usr/share/doc/git/RelNotes/1.5.2.5.txt +/usr/share/doc/git/RelNotes/1.5.2.txt +/usr/share/doc/git/RelNotes/1.5.3.1.txt +/usr/share/doc/git/RelNotes/1.5.3.2.txt +/usr/share/doc/git/RelNotes/1.5.3.3.txt +/usr/share/doc/git/RelNotes/1.5.3.4.txt +/usr/share/doc/git/RelNotes/1.5.3.5.txt +/usr/share/doc/git/RelNotes/1.5.3.6.txt +/usr/share/doc/git/RelNotes/1.5.3.7.txt +/usr/share/doc/git/RelNotes/1.5.3.8.txt +/usr/share/doc/git/RelNotes/1.5.3.txt +/usr/share/doc/git/RelNotes/1.5.4.1.txt +/usr/share/doc/git/RelNotes/1.5.4.2.txt +/usr/share/doc/git/RelNotes/1.5.4.3.txt +/usr/share/doc/git/RelNotes/1.5.4.4.txt +/usr/share/doc/git/RelNotes/1.5.4.5.txt +/usr/share/doc/git/RelNotes/1.5.4.6.txt +/usr/share/doc/git/RelNotes/1.5.4.7.txt +/usr/share/doc/git/RelNotes/1.5.4.txt +/usr/share/doc/git/RelNotes/1.5.5.1.txt +/usr/share/doc/git/RelNotes/1.5.5.2.txt +/usr/share/doc/git/RelNotes/1.5.5.3.txt +/usr/share/doc/git/RelNotes/1.5.5.4.txt +/usr/share/doc/git/RelNotes/1.5.5.5.txt +/usr/share/doc/git/RelNotes/1.5.5.6.txt +/usr/share/doc/git/RelNotes/1.5.5.txt +/usr/share/doc/git/RelNotes/1.5.6.1.txt +/usr/share/doc/git/RelNotes/1.5.6.2.txt +/usr/share/doc/git/RelNotes/1.5.6.3.txt +/usr/share/doc/git/RelNotes/1.5.6.4.txt +/usr/share/doc/git/RelNotes/1.5.6.5.txt +/usr/share/doc/git/RelNotes/1.5.6.6.txt +/usr/share/doc/git/RelNotes/1.5.6.txt +/usr/share/doc/git/RelNotes/1.6.0.1.txt +/usr/share/doc/git/RelNotes/1.6.0.2.txt +/usr/share/doc/git/RelNotes/1.6.0.3.txt +/usr/share/doc/git/RelNotes/1.6.0.4.txt +/usr/share/doc/git/RelNotes/1.6.0.5.txt +/usr/share/doc/git/RelNotes/1.6.0.6.txt +/usr/share/doc/git/RelNotes/1.6.0.txt +/usr/share/doc/git/RelNotes/1.6.1.1.txt +/usr/share/doc/git/RelNotes/1.6.1.2.txt +/usr/share/doc/git/RelNotes/1.6.1.3.txt +/usr/share/doc/git/RelNotes/1.6.1.4.txt +/usr/share/doc/git/RelNotes/1.6.1.txt +/usr/share/doc/git/RelNotes/1.6.2.1.txt +/usr/share/doc/git/RelNotes/1.6.2.2.txt +/usr/share/doc/git/RelNotes/1.6.2.3.txt +/usr/share/doc/git/RelNotes/1.6.2.4.txt +/usr/share/doc/git/RelNotes/1.6.2.5.txt +/usr/share/doc/git/RelNotes/1.6.2.txt +/usr/share/doc/git/RelNotes/1.6.3.1.txt +/usr/share/doc/git/RelNotes/1.6.3.2.txt +/usr/share/doc/git/RelNotes/1.6.3.3.txt +/usr/share/doc/git/RelNotes/1.6.3.4.txt +/usr/share/doc/git/RelNotes/1.6.3.txt +/usr/share/doc/git/RelNotes/1.6.4.1.txt +/usr/share/doc/git/RelNotes/1.6.4.2.txt +/usr/share/doc/git/RelNotes/1.6.4.3.txt +/usr/share/doc/git/RelNotes/1.6.4.4.txt +/usr/share/doc/git/RelNotes/1.6.4.5.txt +/usr/share/doc/git/RelNotes/1.6.4.txt +/usr/share/doc/git/RelNotes/1.6.5.1.txt +/usr/share/doc/git/RelNotes/1.6.5.2.txt +/usr/share/doc/git/RelNotes/1.6.5.3.txt +/usr/share/doc/git/RelNotes/1.6.5.4.txt +/usr/share/doc/git/RelNotes/1.6.5.5.txt +/usr/share/doc/git/RelNotes/1.6.5.6.txt +/usr/share/doc/git/RelNotes/1.6.5.7.txt +/usr/share/doc/git/RelNotes/1.6.5.8.txt +/usr/share/doc/git/RelNotes/1.6.5.9.txt +/usr/share/doc/git/RelNotes/1.6.5.txt +/usr/share/doc/git/RelNotes/1.6.6.1.txt +/usr/share/doc/git/RelNotes/1.6.6.2.txt +/usr/share/doc/git/RelNotes/1.6.6.3.txt +/usr/share/doc/git/RelNotes/1.6.6.txt +/usr/share/doc/git/RelNotes/1.7.0.1.txt +/usr/share/doc/git/RelNotes/1.7.0.2.txt +/usr/share/doc/git/RelNotes/1.7.0.3.txt +/usr/share/doc/git/RelNotes/1.7.0.4.txt +/usr/share/doc/git/RelNotes/1.7.0.5.txt +/usr/share/doc/git/RelNotes/1.7.0.6.txt +/usr/share/doc/git/RelNotes/1.7.0.7.txt +/usr/share/doc/git/RelNotes/1.7.0.8.txt +/usr/share/doc/git/RelNotes/1.7.0.9.txt +/usr/share/doc/git/RelNotes/1.7.0.txt +/usr/share/doc/git/RelNotes/1.7.1.1.txt +/usr/share/doc/git/RelNotes/1.7.1.2.txt +/usr/share/doc/git/RelNotes/1.7.1.3.txt +/usr/share/doc/git/RelNotes/1.7.1.4.txt +/usr/share/doc/git/RelNotes/1.7.1.txt +/usr/share/doc/git/RelNotes/1.7.10.1.txt +/usr/share/doc/git/RelNotes/1.7.10.2.txt +/usr/share/doc/git/RelNotes/1.7.10.3.txt +/usr/share/doc/git/RelNotes/1.7.10.4.txt +/usr/share/doc/git/RelNotes/1.7.10.5.txt +/usr/share/doc/git/RelNotes/1.7.10.txt +/usr/share/doc/git/RelNotes/1.7.11.1.txt +/usr/share/doc/git/RelNotes/1.7.11.2.txt +/usr/share/doc/git/RelNotes/1.7.11.3.txt +/usr/share/doc/git/RelNotes/1.7.11.4.txt +/usr/share/doc/git/RelNotes/1.7.11.5.txt +/usr/share/doc/git/RelNotes/1.7.11.6.txt +/usr/share/doc/git/RelNotes/1.7.11.7.txt +/usr/share/doc/git/RelNotes/1.7.11.txt +/usr/share/doc/git/RelNotes/1.7.12.1.txt +/usr/share/doc/git/RelNotes/1.7.12.2.txt +/usr/share/doc/git/RelNotes/1.7.12.3.txt +/usr/share/doc/git/RelNotes/1.7.12.4.txt +/usr/share/doc/git/RelNotes/1.7.12.txt +/usr/share/doc/git/RelNotes/1.7.2.1.txt +/usr/share/doc/git/RelNotes/1.7.2.2.txt +/usr/share/doc/git/RelNotes/1.7.2.3.txt +/usr/share/doc/git/RelNotes/1.7.2.4.txt +/usr/share/doc/git/RelNotes/1.7.2.5.txt +/usr/share/doc/git/RelNotes/1.7.2.txt +/usr/share/doc/git/RelNotes/1.7.3.1.txt +/usr/share/doc/git/RelNotes/1.7.3.2.txt +/usr/share/doc/git/RelNotes/1.7.3.3.txt +/usr/share/doc/git/RelNotes/1.7.3.4.txt +/usr/share/doc/git/RelNotes/1.7.3.5.txt +/usr/share/doc/git/RelNotes/1.7.3.txt +/usr/share/doc/git/RelNotes/1.7.4.1.txt +/usr/share/doc/git/RelNotes/1.7.4.2.txt +/usr/share/doc/git/RelNotes/1.7.4.3.txt +/usr/share/doc/git/RelNotes/1.7.4.4.txt +/usr/share/doc/git/RelNotes/1.7.4.5.txt +/usr/share/doc/git/RelNotes/1.7.4.txt +/usr/share/doc/git/RelNotes/1.7.5.1.txt +/usr/share/doc/git/RelNotes/1.7.5.2.txt +/usr/share/doc/git/RelNotes/1.7.5.3.txt +/usr/share/doc/git/RelNotes/1.7.5.4.txt +/usr/share/doc/git/RelNotes/1.7.5.txt +/usr/share/doc/git/RelNotes/1.7.6.1.txt +/usr/share/doc/git/RelNotes/1.7.6.2.txt +/usr/share/doc/git/RelNotes/1.7.6.3.txt +/usr/share/doc/git/RelNotes/1.7.6.4.txt +/usr/share/doc/git/RelNotes/1.7.6.5.txt +/usr/share/doc/git/RelNotes/1.7.6.6.txt +/usr/share/doc/git/RelNotes/1.7.6.txt +/usr/share/doc/git/RelNotes/1.7.7.1.txt +/usr/share/doc/git/RelNotes/1.7.7.2.txt +/usr/share/doc/git/RelNotes/1.7.7.3.txt +/usr/share/doc/git/RelNotes/1.7.7.4.txt +/usr/share/doc/git/RelNotes/1.7.7.5.txt +/usr/share/doc/git/RelNotes/1.7.7.6.txt +/usr/share/doc/git/RelNotes/1.7.7.7.txt +/usr/share/doc/git/RelNotes/1.7.7.txt +/usr/share/doc/git/RelNotes/1.7.8.1.txt +/usr/share/doc/git/RelNotes/1.7.8.2.txt +/usr/share/doc/git/RelNotes/1.7.8.3.txt +/usr/share/doc/git/RelNotes/1.7.8.4.txt +/usr/share/doc/git/RelNotes/1.7.8.5.txt +/usr/share/doc/git/RelNotes/1.7.8.6.txt +/usr/share/doc/git/RelNotes/1.7.8.txt +/usr/share/doc/git/RelNotes/1.7.9.1.txt +/usr/share/doc/git/RelNotes/1.7.9.2.txt +/usr/share/doc/git/RelNotes/1.7.9.3.txt +/usr/share/doc/git/RelNotes/1.7.9.4.txt +/usr/share/doc/git/RelNotes/1.7.9.5.txt +/usr/share/doc/git/RelNotes/1.7.9.6.txt +/usr/share/doc/git/RelNotes/1.7.9.7.txt +/usr/share/doc/git/RelNotes/1.7.9.txt +/usr/share/doc/git/RelNotes/1.8.0.1.txt +/usr/share/doc/git/RelNotes/1.8.0.2.txt +/usr/share/doc/git/RelNotes/1.8.0.3.txt +/usr/share/doc/git/RelNotes/1.8.0.txt +/usr/share/doc/git/RelNotes/1.8.1.1.txt +/usr/share/doc/git/RelNotes/1.8.1.2.txt +/usr/share/doc/git/RelNotes/1.8.1.3.txt +/usr/share/doc/git/RelNotes/1.8.1.4.txt +/usr/share/doc/git/RelNotes/1.8.1.5.txt +/usr/share/doc/git/RelNotes/1.8.1.6.txt +/usr/share/doc/git/RelNotes/1.8.1.txt +/usr/share/doc/git/RelNotes/1.8.2.1.txt +/usr/share/doc/git/RelNotes/1.8.2.2.txt +/usr/share/doc/git/RelNotes/1.8.2.3.txt +/usr/share/doc/git/RelNotes/1.8.2.txt +/usr/share/doc/git/RelNotes/1.8.3.1.txt +/usr/share/doc/git/RelNotes/1.8.3.2.txt +/usr/share/doc/git/RelNotes/1.8.3.3.txt +/usr/share/doc/git/RelNotes/1.8.3.4.txt +/usr/share/doc/git/RelNotes/1.8.3.txt +/usr/share/doc/git/RelNotes/1.8.4.1.txt +/usr/share/doc/git/RelNotes/1.8.4.2.txt +/usr/share/doc/git/RelNotes/1.8.4.3.txt +/usr/share/doc/git/RelNotes/1.8.4.4.txt +/usr/share/doc/git/RelNotes/1.8.4.5.txt +/usr/share/doc/git/RelNotes/1.8.4.txt +/usr/share/doc/git/RelNotes/1.8.5.1.txt +/usr/share/doc/git/RelNotes/1.8.5.2.txt +/usr/share/doc/git/RelNotes/1.8.5.3.txt +/usr/share/doc/git/RelNotes/1.8.5.4.txt +/usr/share/doc/git/RelNotes/1.8.5.5.txt +/usr/share/doc/git/RelNotes/1.8.5.6.txt +/usr/share/doc/git/RelNotes/1.8.5.txt +/usr/share/doc/git/RelNotes/1.9.0.txt +/usr/share/doc/git/RelNotes/1.9.1.txt +/usr/share/doc/git/RelNotes/1.9.2.txt +/usr/share/doc/git/RelNotes/1.9.3.txt +/usr/share/doc/git/RelNotes/1.9.4.txt +/usr/share/doc/git/RelNotes/1.9.5.txt +/usr/share/doc/git/RelNotes/2.0.0.txt +/usr/share/doc/git/RelNotes/2.0.1.txt +/usr/share/doc/git/RelNotes/2.0.2.txt +/usr/share/doc/git/RelNotes/2.0.3.txt +/usr/share/doc/git/RelNotes/2.0.4.txt +/usr/share/doc/git/RelNotes/2.0.5.txt +/usr/share/doc/git/RelNotes/2.1.0.txt +/usr/share/doc/git/RelNotes/2.1.1.txt +/usr/share/doc/git/RelNotes/2.1.2.txt +/usr/share/doc/git/RelNotes/2.1.3.txt +/usr/share/doc/git/RelNotes/2.1.4.txt +/usr/share/doc/git/RelNotes/2.10.0.txt +/usr/share/doc/git/RelNotes/2.10.1.txt +/usr/share/doc/git/RelNotes/2.10.2.txt +/usr/share/doc/git/RelNotes/2.10.3.txt +/usr/share/doc/git/RelNotes/2.10.4.txt +/usr/share/doc/git/RelNotes/2.10.5.txt +/usr/share/doc/git/RelNotes/2.11.0.txt +/usr/share/doc/git/RelNotes/2.11.1.txt +/usr/share/doc/git/RelNotes/2.11.2.txt +/usr/share/doc/git/RelNotes/2.11.3.txt +/usr/share/doc/git/RelNotes/2.11.4.txt +/usr/share/doc/git/RelNotes/2.12.0.txt +/usr/share/doc/git/RelNotes/2.12.1.txt +/usr/share/doc/git/RelNotes/2.12.2.txt +/usr/share/doc/git/RelNotes/2.12.3.txt +/usr/share/doc/git/RelNotes/2.12.4.txt +/usr/share/doc/git/RelNotes/2.12.5.txt +/usr/share/doc/git/RelNotes/2.13.0.txt +/usr/share/doc/git/RelNotes/2.13.1.txt +/usr/share/doc/git/RelNotes/2.13.2.txt +/usr/share/doc/git/RelNotes/2.13.3.txt +/usr/share/doc/git/RelNotes/2.13.4.txt +/usr/share/doc/git/RelNotes/2.13.5.txt +/usr/share/doc/git/RelNotes/2.13.6.txt +/usr/share/doc/git/RelNotes/2.13.7.txt +/usr/share/doc/git/RelNotes/2.14.0.txt +/usr/share/doc/git/RelNotes/2.14.1.txt +/usr/share/doc/git/RelNotes/2.14.2.txt +/usr/share/doc/git/RelNotes/2.14.3.txt +/usr/share/doc/git/RelNotes/2.14.4.txt +/usr/share/doc/git/RelNotes/2.15.0.txt +/usr/share/doc/git/RelNotes/2.15.1.txt +/usr/share/doc/git/RelNotes/2.15.2.txt +/usr/share/doc/git/RelNotes/2.16.0.txt +/usr/share/doc/git/RelNotes/2.16.1.txt +/usr/share/doc/git/RelNotes/2.16.2.txt +/usr/share/doc/git/RelNotes/2.16.3.txt +/usr/share/doc/git/RelNotes/2.16.4.txt +/usr/share/doc/git/RelNotes/2.17.0.txt +/usr/share/doc/git/RelNotes/2.17.1.txt +/usr/share/doc/git/RelNotes/2.2.0.txt +/usr/share/doc/git/RelNotes/2.2.1.txt +/usr/share/doc/git/RelNotes/2.2.2.txt +/usr/share/doc/git/RelNotes/2.2.3.txt +/usr/share/doc/git/RelNotes/2.3.0.txt +/usr/share/doc/git/RelNotes/2.3.1.txt +/usr/share/doc/git/RelNotes/2.3.10.txt +/usr/share/doc/git/RelNotes/2.3.2.txt +/usr/share/doc/git/RelNotes/2.3.3.txt +/usr/share/doc/git/RelNotes/2.3.4.txt +/usr/share/doc/git/RelNotes/2.3.5.txt +/usr/share/doc/git/RelNotes/2.3.6.txt +/usr/share/doc/git/RelNotes/2.3.7.txt +/usr/share/doc/git/RelNotes/2.3.8.txt +/usr/share/doc/git/RelNotes/2.3.9.txt +/usr/share/doc/git/RelNotes/2.4.0.txt +/usr/share/doc/git/RelNotes/2.4.1.txt +/usr/share/doc/git/RelNotes/2.4.10.txt +/usr/share/doc/git/RelNotes/2.4.11.txt +/usr/share/doc/git/RelNotes/2.4.12.txt +/usr/share/doc/git/RelNotes/2.4.2.txt +/usr/share/doc/git/RelNotes/2.4.3.txt +/usr/share/doc/git/RelNotes/2.4.4.txt +/usr/share/doc/git/RelNotes/2.4.5.txt +/usr/share/doc/git/RelNotes/2.4.6.txt +/usr/share/doc/git/RelNotes/2.4.7.txt +/usr/share/doc/git/RelNotes/2.4.8.txt +/usr/share/doc/git/RelNotes/2.4.9.txt +/usr/share/doc/git/RelNotes/2.5.0.txt +/usr/share/doc/git/RelNotes/2.5.1.txt +/usr/share/doc/git/RelNotes/2.5.2.txt +/usr/share/doc/git/RelNotes/2.5.3.txt +/usr/share/doc/git/RelNotes/2.5.4.txt +/usr/share/doc/git/RelNotes/2.5.5.txt +/usr/share/doc/git/RelNotes/2.5.6.txt +/usr/share/doc/git/RelNotes/2.6.0.txt +/usr/share/doc/git/RelNotes/2.6.1.txt +/usr/share/doc/git/RelNotes/2.6.2.txt +/usr/share/doc/git/RelNotes/2.6.3.txt +/usr/share/doc/git/RelNotes/2.6.4.txt +/usr/share/doc/git/RelNotes/2.6.5.txt +/usr/share/doc/git/RelNotes/2.6.6.txt +/usr/share/doc/git/RelNotes/2.6.7.txt +/usr/share/doc/git/RelNotes/2.7.0.txt +/usr/share/doc/git/RelNotes/2.7.1.txt +/usr/share/doc/git/RelNotes/2.7.2.txt +/usr/share/doc/git/RelNotes/2.7.3.txt +/usr/share/doc/git/RelNotes/2.7.4.txt +/usr/share/doc/git/RelNotes/2.7.5.txt +/usr/share/doc/git/RelNotes/2.7.6.txt +/usr/share/doc/git/RelNotes/2.8.0.txt +/usr/share/doc/git/RelNotes/2.8.1.txt +/usr/share/doc/git/RelNotes/2.8.2.txt +/usr/share/doc/git/RelNotes/2.8.3.txt +/usr/share/doc/git/RelNotes/2.8.4.txt +/usr/share/doc/git/RelNotes/2.8.5.txt +/usr/share/doc/git/RelNotes/2.8.6.txt +/usr/share/doc/git/RelNotes/2.9.0.txt +/usr/share/doc/git/RelNotes/2.9.1.txt +/usr/share/doc/git/RelNotes/2.9.2.txt +/usr/share/doc/git/RelNotes/2.9.3.txt +/usr/share/doc/git/RelNotes/2.9.4.txt +/usr/share/doc/git/RelNotes/2.9.5.txt +/usr/share/doc/git/changelog.Debian.gz +/usr/share/doc/git/contrib +/usr/share/doc/git/contrib/README +/usr/share/doc/git/contrib/buildsystems +/usr/share/doc/git/contrib/buildsystems/Generators +/usr/share/doc/git/contrib/buildsystems/Generators/QMake.pm +/usr/share/doc/git/contrib/buildsystems/Generators/Vcproj.pm +/usr/share/doc/git/contrib/buildsystems/Generators.pm +/usr/share/doc/git/contrib/buildsystems/engine.pl +/usr/share/doc/git/contrib/buildsystems/generate +/usr/share/doc/git/contrib/buildsystems/parse.pl +/usr/share/doc/git/contrib/coccinelle +/usr/share/doc/git/contrib/coccinelle/README +/usr/share/doc/git/contrib/coccinelle/array.cocci +/usr/share/doc/git/contrib/coccinelle/free.cocci +/usr/share/doc/git/contrib/coccinelle/object_id.cocci +/usr/share/doc/git/contrib/coccinelle/qsort.cocci +/usr/share/doc/git/contrib/coccinelle/strbuf.cocci +/usr/share/doc/git/contrib/coccinelle/swap.cocci +/usr/share/doc/git/contrib/coccinelle/xstrdup_or_null.cocci +/usr/share/doc/git/contrib/contacts +/usr/share/doc/git/contrib/contacts/Makefile +/usr/share/doc/git/contrib/contacts/git-contacts +/usr/share/doc/git/contrib/contacts/git-contacts.txt +/usr/share/doc/git/contrib/convert-grafts-to-replace-refs.sh +/usr/share/doc/git/contrib/credential +/usr/share/doc/git/contrib/credential/gnome-keyring +/usr/share/doc/git/contrib/credential/gnome-keyring/Makefile +/usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring.c +/usr/share/doc/git/contrib/credential/libsecret +/usr/share/doc/git/contrib/credential/libsecret/Makefile +/usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret.c +/usr/share/doc/git/contrib/credential/netrc +/usr/share/doc/git/contrib/credential/netrc/Makefile +/usr/share/doc/git/contrib/credential/netrc/git-credential-netrc +/usr/share/doc/git/contrib/credential/netrc/test.netrc +/usr/share/doc/git/contrib/credential/netrc/test.pl +/usr/share/doc/git/contrib/credential/osxkeychain +/usr/share/doc/git/contrib/credential/osxkeychain/Makefile +/usr/share/doc/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c +/usr/share/doc/git/contrib/credential/wincred +/usr/share/doc/git/contrib/credential/wincred/Makefile +/usr/share/doc/git/contrib/credential/wincred/git-credential-wincred.c +/usr/share/doc/git/contrib/diff-highlight +/usr/share/doc/git/contrib/diff-highlight/DiffHighlight.pm +/usr/share/doc/git/contrib/diff-highlight/Makefile +/usr/share/doc/git/contrib/diff-highlight/README +/usr/share/doc/git/contrib/diff-highlight/diff-highlight +/usr/share/doc/git/contrib/diff-highlight/diff-highlight.perl +/usr/share/doc/git/contrib/diff-highlight/shebang.perl +/usr/share/doc/git/contrib/diff-highlight/t +/usr/share/doc/git/contrib/diff-highlight/t/Makefile +/usr/share/doc/git/contrib/diff-highlight/t/t9400-diff-highlight.sh +/usr/share/doc/git/contrib/examples +/usr/share/doc/git/contrib/examples/README +/usr/share/doc/git/contrib/examples/builtin-fetch--tool.c +/usr/share/doc/git/contrib/examples/git-am.sh +/usr/share/doc/git/contrib/examples/git-checkout.sh +/usr/share/doc/git/contrib/examples/git-clean.sh +/usr/share/doc/git/contrib/examples/git-clone.sh +/usr/share/doc/git/contrib/examples/git-commit.sh +/usr/share/doc/git/contrib/examples/git-difftool.perl +/usr/share/doc/git/contrib/examples/git-fetch.sh +/usr/share/doc/git/contrib/examples/git-gc.sh +/usr/share/doc/git/contrib/examples/git-log.sh +/usr/share/doc/git/contrib/examples/git-ls-remote.sh +/usr/share/doc/git/contrib/examples/git-merge-ours.sh +/usr/share/doc/git/contrib/examples/git-merge.sh +/usr/share/doc/git/contrib/examples/git-notes.sh +/usr/share/doc/git/contrib/examples/git-pull.sh +/usr/share/doc/git/contrib/examples/git-remote.perl +/usr/share/doc/git/contrib/examples/git-repack.sh +/usr/share/doc/git/contrib/examples/git-rerere.perl +/usr/share/doc/git/contrib/examples/git-reset.sh +/usr/share/doc/git/contrib/examples/git-resolve.sh +/usr/share/doc/git/contrib/examples/git-revert.sh +/usr/share/doc/git/contrib/examples/git-svnimport.perl +/usr/share/doc/git/contrib/examples/git-svnimport.txt +/usr/share/doc/git/contrib/examples/git-tag.sh +/usr/share/doc/git/contrib/examples/git-verify-tag.sh +/usr/share/doc/git/contrib/examples/git-whatchanged.sh +/usr/share/doc/git/contrib/fast-import +/usr/share/doc/git/contrib/fast-import/git-import.perl +/usr/share/doc/git/contrib/fast-import/git-import.sh +/usr/share/doc/git/contrib/fast-import/git-p4.README +/usr/share/doc/git/contrib/fast-import/import-directories.perl +/usr/share/doc/git/contrib/fast-import/import-tars.perl +/usr/share/doc/git/contrib/fast-import/import-zips.py +/usr/share/doc/git/contrib/git-jump +/usr/share/doc/git/contrib/git-jump/README +/usr/share/doc/git/contrib/git-jump/git-jump +/usr/share/doc/git/contrib/git-resurrect.sh +/usr/share/doc/git/contrib/git-shell-commands +/usr/share/doc/git/contrib/git-shell-commands/README +/usr/share/doc/git/contrib/git-shell-commands/help +/usr/share/doc/git/contrib/git-shell-commands/list +/usr/share/doc/git/contrib/hg-to-git +/usr/share/doc/git/contrib/hg-to-git/hg-to-git.py +/usr/share/doc/git/contrib/hg-to-git/hg-to-git.txt +/usr/share/doc/git/contrib/long-running-filter +/usr/share/doc/git/contrib/long-running-filter/example.pl +/usr/share/doc/git/contrib/persistent-https +/usr/share/doc/git/contrib/persistent-https/Makefile +/usr/share/doc/git/contrib/persistent-https/README +/usr/share/doc/git/contrib/persistent-https/client.go +/usr/share/doc/git/contrib/persistent-https/main.go +/usr/share/doc/git/contrib/persistent-https/proxy.go +/usr/share/doc/git/contrib/persistent-https/socket.go +/usr/share/doc/git/contrib/remote-helpers +/usr/share/doc/git/contrib/remote-helpers/README +/usr/share/doc/git/contrib/remote-helpers/git-remote-bzr +/usr/share/doc/git/contrib/remote-helpers/git-remote-hg +/usr/share/doc/git/contrib/remotes2config.sh +/usr/share/doc/git/contrib/rerere-train.sh +/usr/share/doc/git/contrib/stats +/usr/share/doc/git/contrib/stats/git-common-hash +/usr/share/doc/git/contrib/stats/mailmap.pl +/usr/share/doc/git/contrib/stats/packinfo.pl +/usr/share/doc/git/contrib/subtree +/usr/share/doc/git/contrib/subtree/INSTALL +/usr/share/doc/git/contrib/subtree/Makefile +/usr/share/doc/git/contrib/subtree/README +/usr/share/doc/git/contrib/subtree/git-subtree +/usr/share/doc/git/contrib/subtree/git-subtree.sh +/usr/share/doc/git/contrib/subtree/git-subtree.txt +/usr/share/doc/git/contrib/subtree/t +/usr/share/doc/git/contrib/subtree/t/Makefile +/usr/share/doc/git/contrib/subtree/t/t7900-subtree.sh +/usr/share/doc/git/contrib/subtree/todo +/usr/share/doc/git/contrib/svn-fe +/usr/share/doc/git/contrib/svn-fe/Makefile +/usr/share/doc/git/contrib/svn-fe/svn-fe.c +/usr/share/doc/git/contrib/svn-fe/svn-fe.txt +/usr/share/doc/git/contrib/svn-fe/svnrdump_sim.py +/usr/share/doc/git/contrib/thunderbird-patch-inline +/usr/share/doc/git/contrib/thunderbird-patch-inline/README +/usr/share/doc/git/contrib/thunderbird-patch-inline/appp.sh +/usr/share/doc/git/contrib/update-unicode +/usr/share/doc/git/contrib/update-unicode/README +/usr/share/doc/git/contrib/update-unicode/update_unicode.sh +/usr/share/doc/git/contrib/workdir +/usr/share/doc/git/contrib/workdir/git-new-workdir +/usr/share/doc/git/copyright +/usr/share/git-core +/usr/share/git-core/contrib +/usr/share/git-core/contrib/hooks +/usr/share/git-core/contrib/hooks/post-receive-email +/usr/share/git-core/contrib/hooks/pre-auto-gc-battery +/usr/share/git-core/contrib/hooks/setgitperms.perl +/usr/share/git-core/contrib/hooks/update-paranoid +/usr/share/git-core/templates +/usr/share/git-core/templates/branches +/usr/share/git-core/templates/description +/usr/share/git-core/templates/hooks +/usr/share/git-core/templates/hooks/applypatch-msg.sample +/usr/share/git-core/templates/hooks/commit-msg.sample +/usr/share/git-core/templates/hooks/fsmonitor-watchman.sample +/usr/share/git-core/templates/hooks/post-update.sample +/usr/share/git-core/templates/hooks/pre-applypatch.sample +/usr/share/git-core/templates/hooks/pre-commit.sample +/usr/share/git-core/templates/hooks/pre-push.sample +/usr/share/git-core/templates/hooks/pre-rebase.sample +/usr/share/git-core/templates/hooks/pre-receive.sample +/usr/share/git-core/templates/hooks/prepare-commit-msg.sample +/usr/share/git-core/templates/hooks/update.sample +/usr/share/git-core/templates/info +/usr/share/git-core/templates/info/exclude +/usr/share/gitweb +/usr/share/gitweb/gitweb.cgi +/usr/share/gitweb/static +/usr/share/gitweb/static/git-favicon.png +/usr/share/gitweb/static/git-logo.png +/usr/share/gitweb/static/gitweb.css +/usr/share/gitweb/static/gitweb.js +/usr/share/lintian +/usr/share/lintian/overrides +/usr/share/lintian/overrides/git +/usr/share/perl5 +/usr/share/perl5/Git +/usr/share/perl5/Git/I18N.pm +/usr/share/perl5/Git/IndexInfo.pm +/usr/share/perl5/Git/LoadCPAN +/usr/share/perl5/Git/LoadCPAN/Error.pm +/usr/share/perl5/Git/LoadCPAN/Mail +/usr/share/perl5/Git/LoadCPAN/Mail/Address.pm +/usr/share/perl5/Git/LoadCPAN.pm +/usr/share/perl5/Git/Packet.pm +/usr/share/perl5/Git.pm +/var +/var/lib +/var/lib/git +/usr/bin/git-receive-pack +/usr/bin/git-upload-archive +/usr/lib/git-core/git-add +/usr/lib/git-core/git-am +/usr/lib/git-core/git-annotate +/usr/lib/git-core/git-apply +/usr/lib/git-core/git-archive +/usr/lib/git-core/git-bisect--helper +/usr/lib/git-core/git-blame +/usr/lib/git-core/git-branch +/usr/lib/git-core/git-bundle +/usr/lib/git-core/git-cat-file +/usr/lib/git-core/git-check-attr +/usr/lib/git-core/git-check-ignore +/usr/lib/git-core/git-check-mailmap +/usr/lib/git-core/git-check-ref-format +/usr/lib/git-core/git-checkout +/usr/lib/git-core/git-checkout-index +/usr/lib/git-core/git-cherry +/usr/lib/git-core/git-cherry-pick +/usr/lib/git-core/git-clean +/usr/lib/git-core/git-clone +/usr/lib/git-core/git-column +/usr/lib/git-core/git-commit +/usr/lib/git-core/git-commit-tree +/usr/lib/git-core/git-config +/usr/lib/git-core/git-count-objects +/usr/lib/git-core/git-credential +/usr/lib/git-core/git-describe +/usr/lib/git-core/git-diff +/usr/lib/git-core/git-diff-files +/usr/lib/git-core/git-diff-index +/usr/lib/git-core/git-diff-tree +/usr/lib/git-core/git-difftool +/usr/lib/git-core/git-fast-export +/usr/lib/git-core/git-fetch +/usr/lib/git-core/git-fetch-pack +/usr/lib/git-core/git-fmt-merge-msg +/usr/lib/git-core/git-for-each-ref +/usr/lib/git-core/git-format-patch +/usr/lib/git-core/git-fsck +/usr/lib/git-core/git-fsck-objects +/usr/lib/git-core/git-gc +/usr/lib/git-core/git-get-tar-commit-id +/usr/lib/git-core/git-grep +/usr/lib/git-core/git-hash-object +/usr/lib/git-core/git-help +/usr/lib/git-core/git-index-pack +/usr/lib/git-core/git-init +/usr/lib/git-core/git-init-db +/usr/lib/git-core/git-interpret-trailers +/usr/lib/git-core/git-log +/usr/lib/git-core/git-ls-files +/usr/lib/git-core/git-ls-remote +/usr/lib/git-core/git-ls-tree +/usr/lib/git-core/git-mailinfo +/usr/lib/git-core/git-mailsplit +/usr/lib/git-core/git-merge +/usr/lib/git-core/git-merge-base +/usr/lib/git-core/git-merge-file +/usr/lib/git-core/git-merge-index +/usr/lib/git-core/git-merge-ours +/usr/lib/git-core/git-merge-recursive +/usr/lib/git-core/git-merge-subtree +/usr/lib/git-core/git-merge-tree +/usr/lib/git-core/git-mktag +/usr/lib/git-core/git-mktree +/usr/lib/git-core/git-mv +/usr/lib/git-core/git-name-rev +/usr/lib/git-core/git-notes +/usr/lib/git-core/git-pack-objects +/usr/lib/git-core/git-pack-redundant +/usr/lib/git-core/git-pack-refs +/usr/lib/git-core/git-patch-id +/usr/lib/git-core/git-prune +/usr/lib/git-core/git-prune-packed +/usr/lib/git-core/git-pull +/usr/lib/git-core/git-push +/usr/lib/git-core/git-read-tree +/usr/lib/git-core/git-rebase--helper +/usr/lib/git-core/git-receive-pack +/usr/lib/git-core/git-reflog +/usr/lib/git-core/git-remote +/usr/lib/git-core/git-remote-ext +/usr/lib/git-core/git-remote-fd +/usr/lib/git-core/git-remote-ftp +/usr/lib/git-core/git-remote-ftps +/usr/lib/git-core/git-remote-https +/usr/lib/git-core/git-repack +/usr/lib/git-core/git-replace +/usr/lib/git-core/git-rerere +/usr/lib/git-core/git-reset +/usr/lib/git-core/git-rev-list +/usr/lib/git-core/git-rev-parse +/usr/lib/git-core/git-revert +/usr/lib/git-core/git-rm +/usr/lib/git-core/git-send-pack +/usr/lib/git-core/git-shortlog +/usr/lib/git-core/git-show +/usr/lib/git-core/git-show-branch +/usr/lib/git-core/git-show-ref +/usr/lib/git-core/git-stage +/usr/lib/git-core/git-status +/usr/lib/git-core/git-stripspace +/usr/lib/git-core/git-submodule--helper +/usr/lib/git-core/git-symbolic-ref +/usr/lib/git-core/git-tag +/usr/lib/git-core/git-unpack-file +/usr/lib/git-core/git-unpack-objects +/usr/lib/git-core/git-update-index +/usr/lib/git-core/git-update-ref +/usr/lib/git-core/git-update-server-info +/usr/lib/git-core/git-upload-archive +/usr/lib/git-core/git-var +/usr/lib/git-core/git-verify-commit +/usr/lib/git-core/git-verify-pack +/usr/lib/git-core/git-verify-tag +/usr/lib/git-core/git-whatchanged +/usr/lib/git-core/git-worktree +/usr/lib/git-core/git-write-tree +/usr/share/bash-completion/completions/gitk +/usr/share/doc/git/contrib/hooks +/usr/share/doc/git/contrib/persistent-https/LICENSE +/usr/share/doc/git/contrib/subtree/COPYING +/usr/share/gitweb/index.cgi +/. +/etc +/etc/wgetrc +/usr +/usr/bin +/usr/bin/wget +/usr/share +/usr/share/doc +/usr/share/doc/wget +/usr/share/doc/wget/AUTHORS +/usr/share/doc/wget/MAILING-LIST +/usr/share/doc/wget/NEWS.gz +/usr/share/doc/wget/README +/usr/share/doc/wget/changelog.Debian.gz +/usr/share/doc/wget/copyright +/usr/share/info +/usr/share/info/wget.info.gz +/usr/share/man +/usr/share/man/man1 +/usr/share/man/man1/wget.1.gz +/. +/usr +/usr/bin +/usr/bin/curl +/usr/share +/usr/share/doc +/usr/share/doc/curl +/usr/share/doc/curl/copyright +/usr/share/man +/usr/share/man/man1 +/usr/share/man/man1/curl.1.gz +/usr/share/zsh +/usr/share/zsh/vendor-completions +/usr/share/zsh/vendor-completions/_curl +/usr/share/doc/curl/NEWS.Debian.gz +/usr/share/doc/curl/changelog.Debian.gz +/. +/bin +/bin/tar +/etc +/etc/rmt +/usr +/usr/lib +/usr/lib/mime +/usr/lib/mime/packages +/usr/lib/mime/packages/tar +/usr/lib/tar +/usr/sbin +/usr/sbin/rmt-tar +/usr/sbin/tarcat +/usr/share +/usr/share/doc +/usr/share/doc/tar +/usr/share/doc/tar/AUTHORS +/usr/share/doc/tar/NEWS.Debian.gz +/usr/share/doc/tar/NEWS.gz +/usr/share/doc/tar/README.Debian +/usr/share/doc/tar/THANKS.gz +/usr/share/doc/tar/changelog.Debian.gz +/usr/share/doc/tar/copyright +/usr/share/man +/usr/share/man/man1 +/usr/share/man/man1/tar.1.gz +/usr/share/man/man1/tarcat.1.gz +/usr/share/man/man8 +/usr/share/man/man8/rmt-tar.8.gz +/. +/etc +/etc/apparmor.d +/etc/apparmor.d/usr.lib.snapd.snap-confine.real +/etc/apt +/etc/apt/apt.conf.d +/etc/apt/apt.conf.d/20snapd.conf +/etc/profile.d +/etc/profile.d/apps-bin-path.sh +/etc/xdg +/etc/xdg/autostart +/etc/xdg/autostart/snap-userd-autostart.desktop +/lib +/lib/systemd +/lib/systemd/system +/lib/systemd/system/snapd.apparmor.service +/lib/systemd/system/snapd.autoimport.service +/lib/systemd/system/snapd.core-fixup.service +/lib/systemd/system/snapd.failure.service +/lib/systemd/system/snapd.recovery-chooser-trigger.service +/lib/systemd/system/snapd.seeded.service +/lib/systemd/system/snapd.service +/lib/systemd/system/snapd.snap-repair.service +/lib/systemd/system/snapd.snap-repair.timer +/lib/systemd/system/snapd.socket +/lib/systemd/system/snapd.system-shutdown.service +/lib/systemd/system-generators +/lib/systemd/system-generators/snapd-generator +/lib/udev +/lib/udev/rules.d +/lib/udev/rules.d/66-snapd-autoimport.rules +/snap +/usr +/usr/bin +/usr/bin/snap +/usr/bin/snapfuse +/usr/lib +/usr/lib/environment.d +/usr/lib/environment.d/990-snapd.conf +/usr/lib/snapd +/usr/lib/snapd/complete.sh +/usr/lib/snapd/etelpmoc.sh +/usr/lib/snapd/info +/usr/lib/snapd/snap-bootstrap +/usr/lib/snapd/snap-confine +/usr/lib/snapd/snap-device-helper +/usr/lib/snapd/snap-discard-ns +/usr/lib/snapd/snap-exec +/usr/lib/snapd/snap-failure +/usr/lib/snapd/snap-gdb-shim +/usr/lib/snapd/snap-gdbserver-shim +/usr/lib/snapd/snap-mgmt +/usr/lib/snapd/snap-preseed +/usr/lib/snapd/snap-recovery-chooser +/usr/lib/snapd/snap-repair +/usr/lib/snapd/snap-seccomp +/usr/lib/snapd/snap-update-ns +/usr/lib/snapd/snapctl +/usr/lib/snapd/snapd +/usr/lib/snapd/snapd-apparmor +/usr/lib/snapd/snapd.core-fixup.sh +/usr/lib/snapd/snapd.run-from-snap +/usr/lib/snapd/system-shutdown +/usr/lib/systemd +/usr/lib/systemd/system-environment-generators +/usr/lib/systemd/system-environment-generators/snapd-env-generator +/usr/lib/systemd/user +/usr/lib/systemd/user/snapd.session-agent.service +/usr/lib/systemd/user/snapd.session-agent.socket +/usr/lib/systemd/user/sockets.target.wants +/usr/share +/usr/share/applications +/usr/share/applications/io.snapcraft.SessionAgent.desktop +/usr/share/applications/snap-handle-link.desktop +/usr/share/bash-completion +/usr/share/bash-completion/completions +/usr/share/bash-completion/completions/snap +/usr/share/dbus-1 +/usr/share/dbus-1/services +/usr/share/dbus-1/services/io.snapcraft.Launcher.service +/usr/share/dbus-1/services/io.snapcraft.SessionAgent.service +/usr/share/dbus-1/services/io.snapcraft.Settings.service +/usr/share/dbus-1/session.d +/usr/share/dbus-1/session.d/snapd.session-services.conf +/usr/share/dbus-1/system.d +/usr/share/dbus-1/system.d/snapd.system-services.conf +/usr/share/doc +/usr/share/doc/snapd +/usr/share/doc/snapd/changelog.gz +/usr/share/doc/snapd/copyright +/usr/share/fish +/usr/share/fish/vendor_conf.d +/usr/share/fish/vendor_conf.d/snapd.fish +/usr/share/man +/usr/share/man/man8 +/usr/share/man/man8/snap-confine.8.gz +/usr/share/man/man8/snap-discard-ns.8.gz +/usr/share/man/man8/snap.8.gz +/usr/share/man/man8/snapd-env-generator.8.gz +/usr/share/polkit-1 +/usr/share/polkit-1/actions +/usr/share/polkit-1/actions/io.snapcraft.snapd.policy +/usr/share/zsh +/usr/share/zsh/vendor-completions +/usr/share/zsh/vendor-completions/_snap +/var +/var/cache +/var/cache/snapd +/var/lib +/var/lib/snapd +/var/lib/snapd/apparmor +/var/lib/snapd/apparmor/snap-confine +/var/lib/snapd/auto-import +/var/lib/snapd/dbus-1 +/var/lib/snapd/dbus-1/services +/var/lib/snapd/dbus-1/system-services +/var/lib/snapd/desktop +/var/lib/snapd/desktop/applications +/var/lib/snapd/environment +/var/lib/snapd/firstboot +/var/lib/snapd/inhibit +/var/lib/snapd/lib +/var/lib/snapd/lib/gl +/var/lib/snapd/lib/gl32 +/var/lib/snapd/lib/glvnd +/var/lib/snapd/lib/vulkan +/var/lib/snapd/snaps +/var/lib/snapd/snaps/partial +/var/lib/snapd/ssl +/var/lib/snapd/ssl/store-certs +/var/lib/snapd/void +/var/snap +/lib/udev/snappy-app-dev +/usr/bin/snapctl +/usr/bin/ubuntu-core-launcher +/usr/lib/systemd/user/sockets.target.wants/snapd.session-agent.socket +Required packages are present: git wget curl tar snapd +2022-06-29T14:39:47+02:00 INFO Waiting for automatic snapd restart... +jq 1.5+dfsg-1 from Michael Vogt (mvo) installed +Track start release: https://osm.etsi.org/InstallLog.php?&installation_id=1656506392-cy5tVzv9sM0qcg7Y&local_ts=1656506392&event=start&operation=release&value=ReleaseELEVEN&comment=&tags= +Track start docker_tag: https://osm.etsi.org/InstallLog.php?&installation_id=1656506392-cy5tVzv9sM0qcg7Y&local_ts=1656506392&event=start&operation=docker_tag&value=11&comment=&tags= +Track start installation_type: https://osm.etsi.org/InstallLog.php?&installation_id=1656506392-cy5tVzv9sM0qcg7Y&local_ts=1656506392&event=start&operation=installation_type&value=Default&comment=&tags= +Track checks checkingroot_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656506392-cy5tVzv9sM0qcg7Y&local_ts=1656506392&event=checks&operation=checkingroot_ok&value=&comment=&tags= +Track checks noroot_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656506392-cy5tVzv9sM0qcg7Y&local_ts=1656506393&event=checks&operation=noroot_ok&value=&comment=&tags= +The installation will do the following + 1. Install and configure LXD + 2. Install juju + 3. Install docker CE + 4. Disable swap space + 5. Install and initialize Kubernetes + as pre-requirements. + Do you want to proceed (Y/n)? Y +Track checks proceed_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656506392-cy5tVzv9sM0qcg7Y&local_ts=1656506436&event=checks&operation=proceed_ok&value=&comment=&tags= +Installing OSM +Determining IP address of the interface with the default route +* Applying /etc/sysctl.d/10-console-messages.conf ... +kernel.printk = 4 4 1 7 +* Applying /etc/sysctl.d/10-ipv6-privacy.conf ... +net.ipv6.conf.all.use_tempaddr = 2 +net.ipv6.conf.default.use_tempaddr = 2 +* Applying /etc/sysctl.d/10-kernel-hardening.conf ... +kernel.kptr_restrict = 1 +* Applying /etc/sysctl.d/10-link-restrictions.conf ... +fs.protected_hardlinks = 1 +fs.protected_symlinks = 1 +* Applying /etc/sysctl.d/10-lxd-inotify.conf ... +fs.inotify.max_user_instances = 1024 +* Applying /etc/sysctl.d/10-magic-sysrq.conf ... +kernel.sysrq = 176 +* Applying /etc/sysctl.d/10-network-security.conf ... +net.ipv4.conf.default.rp_filter = 1 +net.ipv4.conf.all.rp_filter = 1 +net.ipv4.tcp_syncookies = 1 +* Applying /etc/sysctl.d/10-ptrace.conf ... +kernel.yama.ptrace_scope = 1 +* Applying /etc/sysctl.d/10-zeropage.conf ... +vm.mmap_min_addr = 65536 +* Applying /usr/lib/sysctl.d/50-default.conf ... +net.ipv4.conf.all.promote_secondaries = 1 +net.core.default_qdisc = fq_codel +* Applying /etc/sysctl.d/60-lxd-production.conf ... +fs.inotify.max_queued_events = 1048576 +fs.inotify.max_user_instances = 1048576 +fs.inotify.max_user_watches = 1048576 +vm.max_map_count = 262144 +kernel.dmesg_restrict = 1 +net.ipv4.neigh.default.gc_thresh3 = 8192 +net.ipv6.neigh.default.gc_thresh3 = 8192 +sysctl: setting key "net.core.bpf_jit_limit": Invalid argument +net.core.bpf_jit_limit = 3000000000 +kernel.keys.maxkeys = 2000 +kernel.keys.maxbytes = 2000000 +* Applying /etc/sysctl.d/99-cloudimg-ipv6.conf ... +net.ipv6.conf.all.use_tempaddr = 0 +net.ipv6.conf.default.use_tempaddr = 0 +* Applying /etc/sysctl.d/99-sysctl.conf ... +* Applying /etc/sysctl.conf ... +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following packages will be REMOVED: + liblxc-common* liblxc1* lxcfs* lxd* lxd-client* +0 upgraded, 0 newly installed, 5 to remove and 15 not upgraded. +After this operation, 34.2 MB disk space will be freed. +(Reading database ... 61647 files and directories currently installed.) +Removing lxd (3.0.3-0ubuntu1~18.04.2) ... +Removing lxd dnsmasq configuration +Removing lxcfs (3.0.3-0ubuntu1~18.04.2) ... +Removing lxd-client (3.0.3-0ubuntu1~18.04.2) ... +Removing liblxc-common (3.0.3-0ubuntu1~18.04.1) ... +Removing liblxc1 (3.0.3-0ubuntu1~18.04.1) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... +Processing triggers for libc-bin (2.27-3ubuntu1.6) ... +(Reading database ... 61401 files and directories currently installed.) +Purging configuration files for liblxc-common (3.0.3-0ubuntu1~18.04.1) ... +Purging configuration files for lxd (3.0.3-0ubuntu1~18.04.2) ... +Purging configuration files for lxcfs (3.0.3-0ubuntu1~18.04.2) ... +Processing triggers for systemd (237-3ubuntu10.53) ... +Processing triggers for ureadahead (0.100.0-21) ... +lxd (4.0/stable) 4.0.9-8e2046b from Canonical** installed +To start your first container, try: lxc launch ubuntu:20.04 +Or for a virtual machine: lxc launch ubuntu:20.04 --vm + +Track prereq prereqok_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656506392-cy5tVzv9sM0qcg7Y&local_ts=1656506480&event=prereq&operation=prereqok_ok&value=&comment=&tags= +DEBUG_INSTALL= +DOCKER_PROXY_URL= +USER=ubuntu +Installing Docker CE ... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +ca-certificates is already the newest version (20211016~18.04.1). +ca-certificates set to manually installed. +software-properties-common is already the newest version (0.96.24.32.18). +software-properties-common set to manually installed. +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following NEW packages will be installed: + apt-transport-https +0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded. +Need to get 4348 B of archives. +After this operation, 154 kB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 apt-transport-https all 1.6.14 [4348 B] +Fetched 4348 B in 0s (78.7 kB/s) +Selecting previously unselected package apt-transport-https. +(Reading database ... 61384 files and directories currently installed.) +Preparing to unpack .../apt-transport-https_1.6.14_all.deb ... +Unpacking apt-transport-https (1.6.14) ... +Setting up apt-transport-https (1.6.14) ... +OK +Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:2 http://security.ubuntu.com/ubuntu bionic-security InRelease +Get:3 https://download.docker.com/linux/ubuntu bionic InRelease [64.4 kB] +Hit:4 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:6 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Get:7 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages [26.4 kB] +Fetched 90.9 kB in 1s (86.0 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following additional packages will be installed: + containerd.io docker-ce-cli docker-ce-rootless-extras docker-scan-plugin + libltdl7 pigz +Suggested packages: + aufs-tools cgroupfs-mount | cgroup-lite +Recommended packages: + slirp4netns +The following NEW packages will be installed: + containerd.io docker-ce docker-ce-cli docker-ce-rootless-extras + docker-scan-plugin libltdl7 pigz +0 upgraded, 7 newly installed, 0 to remove and 15 not upgraded. +Need to get 101 MB of archives. +After this operation, 422 MB of additional disk space will be used. +Get:1 https://download.docker.com/linux/ubuntu bionic/stable amd64 containerd.io amd64 1.6.6-1 [28.1 MB] +Get:2 http://archive.ubuntu.com/ubuntu bionic/universe amd64 pigz amd64 2.4-1 [57.4 kB] +Get:3 http://archive.ubuntu.com/ubuntu bionic/main amd64 libltdl7 amd64 2.4.6-2 [38.8 kB] +Get:4 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce-cli amd64 5:20.10.17~3-0~ubuntu-bionic [40.6 MB] +Get:5 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce amd64 5:20.10.17~3-0~ubuntu-bionic [21.0 MB] +Get:6 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce-rootless-extras amd64 5:20.10.17~3-0~ubuntu-bionic [8163 kB] +Get:7 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-scan-plugin amd64 0.17.0~ubuntu-bionic [3521 kB] +Fetched 101 MB in 3s (32.1 MB/s) +Selecting previously unselected package pigz. +(Reading database ... 61388 files and directories currently installed.) +Preparing to unpack .../0-pigz_2.4-1_amd64.deb ... +Unpacking pigz (2.4-1) ... +Selecting previously unselected package containerd.io. +Preparing to unpack .../1-containerd.io_1.6.6-1_amd64.deb ... +Unpacking containerd.io (1.6.6-1) ... +Selecting previously unselected package docker-ce-cli. +Preparing to unpack .../2-docker-ce-cli_5%3a20.10.17~3-0~ubuntu-bionic_amd64.deb ... +Unpacking docker-ce-cli (5:20.10.17~3-0~ubuntu-bionic) ... +Selecting previously unselected package docker-ce. +Preparing to unpack .../3-docker-ce_5%3a20.10.17~3-0~ubuntu-bionic_amd64.deb ... +Unpacking docker-ce (5:20.10.17~3-0~ubuntu-bionic) ... +Selecting previously unselected package docker-ce-rootless-extras. +Preparing to unpack .../4-docker-ce-rootless-extras_5%3a20.10.17~3-0~ubuntu-bionic_amd64.deb ... +Unpacking docker-ce-rootless-extras (5:20.10.17~3-0~ubuntu-bionic) ... +Selecting previously unselected package docker-scan-plugin. +Preparing to unpack .../5-docker-scan-plugin_0.17.0~ubuntu-bionic_amd64.deb ... +Unpacking docker-scan-plugin (0.17.0~ubuntu-bionic) ... +Selecting previously unselected package libltdl7:amd64. +Preparing to unpack .../6-libltdl7_2.4.6-2_amd64.deb ... +Unpacking libltdl7:amd64 (2.4.6-2) ... +Setting up containerd.io (1.6.6-1) ... +Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service. +Setting up docker-ce-rootless-extras (5:20.10.17~3-0~ubuntu-bionic) ... +Setting up docker-scan-plugin (0.17.0~ubuntu-bionic) ... +Setting up libltdl7:amd64 (2.4.6-2) ... +Setting up docker-ce-cli (5:20.10.17~3-0~ubuntu-bionic) ... +Setting up pigz (2.4-1) ... +Setting up docker-ce (5:20.10.17~3-0~ubuntu-bionic) ... +Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service. +Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket. +Processing triggers for libc-bin (2.27-3ubuntu1.6) ... +Processing triggers for systemd (237-3ubuntu10.53) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... +Processing triggers for ureadahead (0.100.0-21) ... +Adding user to group 'docker' +... restarted Docker service +Client: Docker Engine - Community + Version: 20.10.17 + API version: 1.41 + Go version: go1.17.11 + Git commit: 100c701 + Built: Mon Jun 6 23:02:56 2022 + OS/Arch: linux/amd64 + Context: default + Experimental: true + +Server: Docker Engine - Community + Engine: + Version: 20.10.17 + API version: 1.41 (minimum version 1.12) + Go version: go1.17.11 + Git commit: a89b842 + Built: Mon Jun 6 23:01:02 2022 + OS/Arch: linux/amd64 + Experimental: false + containerd: + Version: 1.6.6 + GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1 + runc: + Version: 1.1.2 + GitCommit: v1.1.2-0-ga916309 + docker-init: + Version: 0.19.0 + GitCommit: de40ad0 +... Docker CE installation done +Track docker_ce docker_ce_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656506392-cy5tVzv9sM0qcg7Y&local_ts=1656506540&event=docker_ce&operation=docker_ce_ok&value=&comment=&tags= +Creating folders for installation +DEBUG_INSTALL= +DEFAULT_IP=192.168.64.23 +OSM_DEVOPS=/usr/share/osm-devops +OSM_DOCKER_WORK_DIR=/etc/osm/docker +INSTALL_K8S_MONITOR= +HOME=/home/ubuntu +Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:2 http://security.ubuntu.com/ubuntu bionic-security InRelease +Hit:3 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:6 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +apt-transport-https is already the newest version (1.6.14). +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +0 upgraded, 0 newly installed, 0 to remove and 15 not upgraded. +Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:2 http://security.ubuntu.com/ubuntu bionic-security InRelease +Hit:3 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:5 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:6 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +apt-transport-https is already the newest version (1.6.14). +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +0 upgraded, 0 newly installed, 0 to remove and 15 not upgraded. +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:2 http://security.ubuntu.com/ubuntu bionic-security InRelease +Hit:3 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:6 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:7 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Get:5 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [9383 B] +Get:8 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 Packages [57.2 kB] +Fetched 66.6 kB in 1s (49.6 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:3 http://security.ubuntu.com/ubuntu bionic-security InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:6 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Hit:7 https://packages.cloud.google.com/apt kubernetes-xenial InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Installing Kubernetes Packages ... +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following additional packages will be installed: + conntrack cri-tools kubernetes-cni socat +The following NEW packages will be installed: + conntrack cri-tools kubeadm kubectl kubelet kubernetes-cni socat +0 upgraded, 7 newly installed, 0 to remove and 15 not upgraded. +Need to get 74.6 MB of archives. +After this operation, 323 MB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu bionic/main amd64 conntrack amd64 1:1.4.4+snapshot20161117-6ubuntu2 [30.6 kB] +Get:2 http://archive.ubuntu.com/ubuntu bionic/main amd64 socat amd64 1.7.3.2-2ubuntu2 [342 kB] +Get:3 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 cri-tools amd64 1.24.2-00 [12.3 MB] +Get:4 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubernetes-cni amd64 0.8.7-00 [25.0 MB] +Get:5 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubelet amd64 1.23.3-00 [19.5 MB] +Get:6 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubectl amd64 1.23.3-00 [8929 kB] +Get:7 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubeadm amd64 1.23.3-00 [8580 kB] +Fetched 74.6 MB in 4s (16.7 MB/s) +Selecting previously unselected package conntrack. +(Reading database ... 61640 files and directories currently installed.) +Preparing to unpack .../0-conntrack_1%3a1.4.4+snapshot20161117-6ubuntu2_amd64.deb ... +Unpacking conntrack (1:1.4.4+snapshot20161117-6ubuntu2) ... +Selecting previously unselected package cri-tools. +Preparing to unpack .../1-cri-tools_1.24.2-00_amd64.deb ... +Unpacking cri-tools (1.24.2-00) ... +Selecting previously unselected package kubernetes-cni. +Preparing to unpack .../2-kubernetes-cni_0.8.7-00_amd64.deb ... +Unpacking kubernetes-cni (0.8.7-00) ... +Selecting previously unselected package socat. +Preparing to unpack .../3-socat_1.7.3.2-2ubuntu2_amd64.deb ... +Unpacking socat (1.7.3.2-2ubuntu2) ... +Selecting previously unselected package kubelet. +Preparing to unpack .../4-kubelet_1.23.3-00_amd64.deb ... +Unpacking kubelet (1.23.3-00) ... +Selecting previously unselected package kubectl. +Preparing to unpack .../5-kubectl_1.23.3-00_amd64.deb ... +Unpacking kubectl (1.23.3-00) ... +Selecting previously unselected package kubeadm. +Preparing to unpack .../6-kubeadm_1.23.3-00_amd64.deb ... +Unpacking kubeadm (1.23.3-00) ... +Setting up conntrack (1:1.4.4+snapshot20161117-6ubuntu2) ... +Setting up kubernetes-cni (0.8.7-00) ... +Setting up cri-tools (1.24.2-00) ... +Setting up socat (1.7.3.2-2ubuntu2) ... +Setting up kubelet (1.23.3-00) ... +Created symlink /etc/systemd/system/multi-user.target.wants/kubelet.service → /lib/systemd/system/kubelet.service. +Setting up kubectl (1.23.3-00) ... +Setting up kubeadm (1.23.3-00) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... + KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs" +kubelet set on hold. +kubeadm set on hold. +kubectl set on hold. +Track k8scluster install_k8s_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656506392-cy5tVzv9sM0qcg7Y&local_ts=1656506591&event=k8scluster&operation=install_k8s_ok&value=&comment=&tags= +I0629 14:43:12.608722 11354 version.go:255] remote version is much newer: v1.24.2; falling back to: stable-1.23 +[init] Using Kubernetes version: v1.23.8 +[preflight] Running pre-flight checks +[preflight] Pulling images required for setting up a Kubernetes cluster +[preflight] This might take a minute or two, depending on the speed of your internet connection +[preflight] You can also perform this action in beforehand using 'kubeadm config images pull' +[certs] Using certificateDir folder "/etc/kubernetes/pki" +[certs] Generating "ca" certificate and key +[certs] Generating "apiserver" certificate and key +[certs] apiserver serving cert is signed for DNS names [kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local osm11] and IPs [10.96.0.1 192.168.64.23] +[certs] Generating "apiserver-kubelet-client" certificate and key +[certs] Generating "front-proxy-ca" certificate and key +[certs] Generating "front-proxy-client" certificate and key +[certs] Generating "etcd/ca" certificate and key +[certs] Generating "etcd/server" certificate and key +[certs] etcd/server serving cert is signed for DNS names [localhost osm11] and IPs [192.168.64.23 127.0.0.1 ::1] +[certs] Generating "etcd/peer" certificate and key +[certs] etcd/peer serving cert is signed for DNS names [localhost osm11] and IPs [192.168.64.23 127.0.0.1 ::1] +[certs] Generating "etcd/healthcheck-client" certificate and key +[certs] Generating "apiserver-etcd-client" certificate and key +[certs] Generating "sa" key and public key +[kubeconfig] Using kubeconfig folder "/etc/kubernetes" +[kubeconfig] Writing "admin.conf" kubeconfig file +[kubeconfig] Writing "kubelet.conf" kubeconfig file +[kubeconfig] Writing "controller-manager.conf" kubeconfig file +[kubeconfig] Writing "scheduler.conf" kubeconfig file +[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env" +[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml" +[kubelet-start] Starting the kubelet +[control-plane] Using manifest folder "/etc/kubernetes/manifests" +[control-plane] Creating static Pod manifest for "kube-apiserver" +[control-plane] Creating static Pod manifest for "kube-controller-manager" +[control-plane] Creating static Pod manifest for "kube-scheduler" +[etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests" +[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s +[apiclient] All control plane components are healthy after 17.506099 seconds +[upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace +[kubelet] Creating a ConfigMap "kubelet-config-1.23" in namespace kube-system with the configuration for the kubelets in the cluster +NOTE: The "kubelet-config-1.23" naming of the kubelet ConfigMap is deprecated. Once the UnversionedKubeletConfigMap feature gate graduates to Beta the default name will become just "kubelet-config". Kubeadm upgrade will handle this transition transparently. +[upload-certs] Skipping phase. Please see --upload-certs +[mark-control-plane] Marking the node osm11 as control-plane by adding the labels: [node-role.kubernetes.io/master(deprecated) node-role.kubernetes.io/control-plane node.kubernetes.io/exclude-from-external-load-balancers] +[mark-control-plane] Marking the node osm11 as control-plane by adding the taints [node-role.kubernetes.io/master:NoSchedule] +[bootstrap-token] Using token: mihz47.8il5yr3lovnr8rl3 +[bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles +[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to get nodes +[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials +[bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token +[bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster +[bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace +[kubelet-finalize] Updating "/etc/kubernetes/kubelet.conf" to point to a rotatable kubelet client certificate and key +[addons] Applied essential addon: CoreDNS +[addons] Applied essential addon: kube-proxy + +Your Kubernetes control-plane has initialized successfully! + +To start using your cluster, you need to run the following as a regular user: + + mkdir -p $HOME/.kube + sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config + +Alternatively, if you are the root user, you can run: + + export KUBECONFIG=/etc/kubernetes/admin.conf + +You should now deploy a pod network to the cluster. +Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: + https://kubernetes.io/docs/concepts/cluster-administration/addons/ + +Then you can join any number of worker nodes by running the following on each as root: + +kubeadm join 192.168.64.23:6443 --token mihz47.8il5yr3lovnr8rl3 \ + --discovery-token-ca-cert-hash sha256:bba24d67d8ad9e2fcc690812be495a1623c782b3ebfb1327f20dc30835b92e51 +Track k8scluster init_k8s_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656506392-cy5tVzv9sM0qcg7Y&local_ts=1656506668&event=k8scluster&operation=init_k8s_ok&value=&comment=&tags= +Error from server (NotFound): namespaces "osm" not found +wget: unrecognized option '--retry-on-host-error' +Usage: wget [OPTION]... [URL]... + +Try `wget --help' for more options. + +### Wed Jun 29 14:44:29 CEST 2022 deploy_cni_provider: FATAL error: Cannot Install Flannel because /tmp/flannel.yq7bEX/kube-flannel.yml was not found. Maybe the file https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml is temporarily not accessible +BACKTRACE: +### FATAL /usr/share/osm-devops/common/logging 46 +### deploy_cni_provider /usr/share/osm-devops/installers/install_kubeadm_cluster.sh 65 +### main /usr/share/osm-devops/installers/install_kubeadm_cluster.sh 298 +### MAIN non_file_source 0 +------- + +### Wed Jun 29 14:44:29 CEST 2022 install_osm: FATAL error: k8scluster install_kubeadm_cluster.sh failed +Track end fatal: https://osm.etsi.org/InstallLog.php?&installation_id=1656506392-cy5tVzv9sM0qcg7Y&local_ts=1656506669&event=end&operation=fatal&value=k8scluster&comment='install_kubeadm_cluster.sh_failed'&tags= +BACKTRACE: +### FATAL_TRACK /usr/share/osm-devops/common/logging 40 +### install_osm /usr/share/osm-devops/installers/full_install_osm.sh 678 +### main /usr/share/osm-devops/installers/full_install_osm.sh 1194 +### MAIN non_file_source 0 +### MAIN non_file_source +### MAIN non_file_source +### MAIN non_file_source +### MAIN non_file_source +### MAIN non_file_source +### MAIN non_file_source +------- diff --git a/_tmp/custom-osm-lcm/osm-install/install.log b/_tmp/custom-osm-lcm/osm-install/install.log new file mode 100644 index 0000000..6549470 --- /dev/null +++ b/_tmp/custom-osm-lcm/osm-install/install.log @@ -0,0 +1,4051 @@ +Checking required packages to add ETSI OSM debian repo: software-properties-common apt-transport-https +OK +Get:1 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease [4086 B] +Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease +Get:3 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB] +Get:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB] +Get:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable/devops amd64 Packages [483 B] +Get:6 http://archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB] +Get:7 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [1583 kB] +Get:8 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages [8628 kB] +Get:9 http://security.ubuntu.com/ubuntu focal-security/main Translation-en [268 kB] +Get:10 http://security.ubuntu.com/ubuntu focal-security/main amd64 c-n-f Metadata [10.6 kB] +Get:11 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [1042 kB] +Get:12 http://security.ubuntu.com/ubuntu focal-security/restricted Translation-en [148 kB] +Get:13 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 c-n-f Metadata [572 B] +Get:14 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [708 kB] +Get:15 http://security.ubuntu.com/ubuntu focal-security/universe Translation-en [127 kB] +Get:16 http://security.ubuntu.com/ubuntu focal-security/universe amd64 c-n-f Metadata [14.6 kB] +Get:17 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [22.2 kB] +Get:18 http://security.ubuntu.com/ubuntu focal-security/multiverse Translation-en [5376 B] +Get:19 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 c-n-f Metadata [512 B] +Get:20 http://archive.ubuntu.com/ubuntu focal/universe Translation-en [5124 kB] +Get:21 http://archive.ubuntu.com/ubuntu focal/universe amd64 c-n-f Metadata [265 kB] +Get:22 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages [144 kB] +Get:23 http://archive.ubuntu.com/ubuntu focal/multiverse Translation-en [104 kB] +Get:24 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 c-n-f Metadata [9136 B] +Get:25 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1935 kB] +Get:26 http://archive.ubuntu.com/ubuntu focal-updates/main Translation-en [350 kB] +Get:27 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 c-n-f Metadata [15.6 kB] +Get:28 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [1119 kB] +Get:29 http://archive.ubuntu.com/ubuntu focal-updates/restricted Translation-en [159 kB] +Get:30 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 c-n-f Metadata [592 B] +Get:31 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [924 kB] +Get:32 http://archive.ubuntu.com/ubuntu focal-updates/universe Translation-en [208 kB] +Get:33 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [20.9 kB] +Get:34 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [24.4 kB] +Get:35 http://archive.ubuntu.com/ubuntu focal-updates/multiverse Translation-en [7336 B] +Get:36 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 c-n-f Metadata [596 B] +Get:37 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [44.8 kB] +Get:38 http://archive.ubuntu.com/ubuntu focal-backports/main Translation-en [11.3 kB] +Get:39 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 c-n-f Metadata [976 B] +Get:40 http://archive.ubuntu.com/ubuntu focal-backports/restricted amd64 c-n-f Metadata [116 B] +Get:41 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [23.7 kB] +Get:42 http://archive.ubuntu.com/ubuntu focal-backports/universe Translation-en [15.9 kB] +Get:43 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 c-n-f Metadata [860 B] +Get:44 http://archive.ubuntu.com/ubuntu focal-backports/multiverse amd64 c-n-f Metadata [116 B] +Fetched 23.4 MB in 5s (4412 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Hit:1 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Hit:2 http://security.ubuntu.com/ubuntu focal-security InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Hit:1 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:3 http://security.ubuntu.com/ubuntu focal-security InRelease +Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + osm-devops +0 upgraded, 1 newly installed, 0 to remove and 18 not upgraded. +Need to get 731 kB of archives. +After this operation, 5661 kB of additional disk space will be used. +Get:1 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable/devops amd64 osm-devops all 11.0.3-1 [731 kB] +Fetched 731 kB in 0s (2321 kB/s) +Selecting previously unselected package osm-devops. +(Reading database ... 63796 files and directories currently installed.) +Preparing to unpack .../osm-devops_11.0.3-1_all.deb ... +Unpacking osm-devops (11.0.3-1) ... +Setting up osm-devops (11.0.3-1) ... +## Wed Jun 29 16:48:06 CEST 2022 source: INFO: logging sourced +## Wed Jun 29 16:48:06 CEST 2022 source: INFO: config sourced +## Wed Jun 29 16:48:06 CEST 2022 source: INFO: container sourced +## Wed Jun 29 16:48:06 CEST 2022 source: INFO: git_functions sourced +## Wed Jun 29 16:48:06 CEST 2022 source: INFO: track sourced +Checking required packages: git wget curl tar snapd +/. +/etc +/etc/bash_completion.d +/etc/bash_completion.d/git-prompt +/usr +/usr/bin +/usr/bin/git +/usr/bin/git-shell +/usr/lib +/usr/lib/git-core +/usr/lib/git-core/git +/usr/lib/git-core/git-add--interactive +/usr/lib/git-core/git-bisect +/usr/lib/git-core/git-credential-cache +/usr/lib/git-core/git-credential-cache--daemon +/usr/lib/git-core/git-credential-store +/usr/lib/git-core/git-daemon +/usr/lib/git-core/git-difftool--helper +/usr/lib/git-core/git-fast-import +/usr/lib/git-core/git-filter-branch +/usr/lib/git-core/git-http-backend +/usr/lib/git-core/git-http-fetch +/usr/lib/git-core/git-http-push +/usr/lib/git-core/git-imap-send +/usr/lib/git-core/git-instaweb +/usr/lib/git-core/git-legacy-stash +/usr/lib/git-core/git-merge-octopus +/usr/lib/git-core/git-merge-one-file +/usr/lib/git-core/git-merge-resolve +/usr/lib/git-core/git-mergetool +/usr/lib/git-core/git-mergetool--lib +/usr/lib/git-core/git-parse-remote +/usr/lib/git-core/git-quiltimport +/usr/lib/git-core/git-rebase--preserve-merges +/usr/lib/git-core/git-remote-http +/usr/lib/git-core/git-remote-testsvn +/usr/lib/git-core/git-request-pull +/usr/lib/git-core/git-sh-i18n +/usr/lib/git-core/git-sh-i18n--envsubst +/usr/lib/git-core/git-sh-prompt +/usr/lib/git-core/git-sh-setup +/usr/lib/git-core/git-shell +/usr/lib/git-core/git-submodule +/usr/lib/git-core/git-subtree +/usr/lib/git-core/git-web--browse +/usr/lib/git-core/mergetools +/usr/lib/git-core/mergetools/araxis +/usr/lib/git-core/mergetools/bc +/usr/lib/git-core/mergetools/bc3 +/usr/lib/git-core/mergetools/codecompare +/usr/lib/git-core/mergetools/deltawalker +/usr/lib/git-core/mergetools/diffmerge +/usr/lib/git-core/mergetools/diffuse +/usr/lib/git-core/mergetools/ecmerge +/usr/lib/git-core/mergetools/emerge +/usr/lib/git-core/mergetools/examdiff +/usr/lib/git-core/mergetools/guiffy +/usr/lib/git-core/mergetools/gvimdiff +/usr/lib/git-core/mergetools/gvimdiff2 +/usr/lib/git-core/mergetools/gvimdiff3 +/usr/lib/git-core/mergetools/kdiff3 +/usr/lib/git-core/mergetools/kompare +/usr/lib/git-core/mergetools/meld +/usr/lib/git-core/mergetools/opendiff +/usr/lib/git-core/mergetools/p4merge +/usr/lib/git-core/mergetools/smerge +/usr/lib/git-core/mergetools/tkdiff +/usr/lib/git-core/mergetools/tortoisemerge +/usr/lib/git-core/mergetools/vimdiff +/usr/lib/git-core/mergetools/vimdiff2 +/usr/lib/git-core/mergetools/vimdiff3 +/usr/lib/git-core/mergetools/winmerge +/usr/lib/git-core/mergetools/xxdiff +/usr/share +/usr/share/bash-completion +/usr/share/bash-completion/completions +/usr/share/bash-completion/completions/git +/usr/share/doc +/usr/share/doc/git +/usr/share/doc/git/NEWS.Debian.gz +/usr/share/doc/git/README.Debian +/usr/share/doc/git/README.emacs +/usr/share/doc/git/README.md +/usr/share/doc/git/README.source +/usr/share/doc/git/RelNotes +/usr/share/doc/git/RelNotes/1.5.0.1.txt +/usr/share/doc/git/RelNotes/1.5.0.2.txt +/usr/share/doc/git/RelNotes/1.5.0.3.txt +/usr/share/doc/git/RelNotes/1.5.0.4.txt +/usr/share/doc/git/RelNotes/1.5.0.5.txt +/usr/share/doc/git/RelNotes/1.5.0.6.txt +/usr/share/doc/git/RelNotes/1.5.0.7.txt +/usr/share/doc/git/RelNotes/1.5.0.txt +/usr/share/doc/git/RelNotes/1.5.1.1.txt +/usr/share/doc/git/RelNotes/1.5.1.2.txt +/usr/share/doc/git/RelNotes/1.5.1.3.txt +/usr/share/doc/git/RelNotes/1.5.1.4.txt +/usr/share/doc/git/RelNotes/1.5.1.5.txt +/usr/share/doc/git/RelNotes/1.5.1.6.txt +/usr/share/doc/git/RelNotes/1.5.1.txt +/usr/share/doc/git/RelNotes/1.5.2.1.txt +/usr/share/doc/git/RelNotes/1.5.2.2.txt +/usr/share/doc/git/RelNotes/1.5.2.3.txt +/usr/share/doc/git/RelNotes/1.5.2.4.txt +/usr/share/doc/git/RelNotes/1.5.2.5.txt +/usr/share/doc/git/RelNotes/1.5.2.txt +/usr/share/doc/git/RelNotes/1.5.3.1.txt +/usr/share/doc/git/RelNotes/1.5.3.2.txt +/usr/share/doc/git/RelNotes/1.5.3.3.txt +/usr/share/doc/git/RelNotes/1.5.3.4.txt +/usr/share/doc/git/RelNotes/1.5.3.5.txt +/usr/share/doc/git/RelNotes/1.5.3.6.txt +/usr/share/doc/git/RelNotes/1.5.3.7.txt +/usr/share/doc/git/RelNotes/1.5.3.8.txt +/usr/share/doc/git/RelNotes/1.5.3.txt +/usr/share/doc/git/RelNotes/1.5.4.1.txt +/usr/share/doc/git/RelNotes/1.5.4.2.txt +/usr/share/doc/git/RelNotes/1.5.4.3.txt +/usr/share/doc/git/RelNotes/1.5.4.4.txt +/usr/share/doc/git/RelNotes/1.5.4.5.txt +/usr/share/doc/git/RelNotes/1.5.4.6.txt +/usr/share/doc/git/RelNotes/1.5.4.7.txt +/usr/share/doc/git/RelNotes/1.5.4.txt +/usr/share/doc/git/RelNotes/1.5.5.1.txt +/usr/share/doc/git/RelNotes/1.5.5.2.txt +/usr/share/doc/git/RelNotes/1.5.5.3.txt +/usr/share/doc/git/RelNotes/1.5.5.4.txt +/usr/share/doc/git/RelNotes/1.5.5.5.txt +/usr/share/doc/git/RelNotes/1.5.5.6.txt +/usr/share/doc/git/RelNotes/1.5.5.txt +/usr/share/doc/git/RelNotes/1.5.6.1.txt +/usr/share/doc/git/RelNotes/1.5.6.2.txt +/usr/share/doc/git/RelNotes/1.5.6.3.txt +/usr/share/doc/git/RelNotes/1.5.6.4.txt +/usr/share/doc/git/RelNotes/1.5.6.5.txt +/usr/share/doc/git/RelNotes/1.5.6.6.txt +/usr/share/doc/git/RelNotes/1.5.6.txt +/usr/share/doc/git/RelNotes/1.6.0.1.txt +/usr/share/doc/git/RelNotes/1.6.0.2.txt +/usr/share/doc/git/RelNotes/1.6.0.3.txt +/usr/share/doc/git/RelNotes/1.6.0.4.txt +/usr/share/doc/git/RelNotes/1.6.0.5.txt +/usr/share/doc/git/RelNotes/1.6.0.6.txt +/usr/share/doc/git/RelNotes/1.6.0.txt +/usr/share/doc/git/RelNotes/1.6.1.1.txt +/usr/share/doc/git/RelNotes/1.6.1.2.txt +/usr/share/doc/git/RelNotes/1.6.1.3.txt +/usr/share/doc/git/RelNotes/1.6.1.4.txt +/usr/share/doc/git/RelNotes/1.6.1.txt +/usr/share/doc/git/RelNotes/1.6.2.1.txt +/usr/share/doc/git/RelNotes/1.6.2.2.txt +/usr/share/doc/git/RelNotes/1.6.2.3.txt +/usr/share/doc/git/RelNotes/1.6.2.4.txt +/usr/share/doc/git/RelNotes/1.6.2.5.txt +/usr/share/doc/git/RelNotes/1.6.2.txt +/usr/share/doc/git/RelNotes/1.6.3.1.txt +/usr/share/doc/git/RelNotes/1.6.3.2.txt +/usr/share/doc/git/RelNotes/1.6.3.3.txt +/usr/share/doc/git/RelNotes/1.6.3.4.txt +/usr/share/doc/git/RelNotes/1.6.3.txt +/usr/share/doc/git/RelNotes/1.6.4.1.txt +/usr/share/doc/git/RelNotes/1.6.4.2.txt +/usr/share/doc/git/RelNotes/1.6.4.3.txt +/usr/share/doc/git/RelNotes/1.6.4.4.txt +/usr/share/doc/git/RelNotes/1.6.4.5.txt +/usr/share/doc/git/RelNotes/1.6.4.txt +/usr/share/doc/git/RelNotes/1.6.5.1.txt +/usr/share/doc/git/RelNotes/1.6.5.2.txt +/usr/share/doc/git/RelNotes/1.6.5.3.txt +/usr/share/doc/git/RelNotes/1.6.5.4.txt +/usr/share/doc/git/RelNotes/1.6.5.5.txt +/usr/share/doc/git/RelNotes/1.6.5.6.txt +/usr/share/doc/git/RelNotes/1.6.5.7.txt +/usr/share/doc/git/RelNotes/1.6.5.8.txt +/usr/share/doc/git/RelNotes/1.6.5.9.txt +/usr/share/doc/git/RelNotes/1.6.5.txt +/usr/share/doc/git/RelNotes/1.6.6.1.txt +/usr/share/doc/git/RelNotes/1.6.6.2.txt +/usr/share/doc/git/RelNotes/1.6.6.3.txt +/usr/share/doc/git/RelNotes/1.6.6.txt +/usr/share/doc/git/RelNotes/1.7.0.1.txt +/usr/share/doc/git/RelNotes/1.7.0.2.txt +/usr/share/doc/git/RelNotes/1.7.0.3.txt +/usr/share/doc/git/RelNotes/1.7.0.4.txt +/usr/share/doc/git/RelNotes/1.7.0.5.txt +/usr/share/doc/git/RelNotes/1.7.0.6.txt +/usr/share/doc/git/RelNotes/1.7.0.7.txt +/usr/share/doc/git/RelNotes/1.7.0.8.txt +/usr/share/doc/git/RelNotes/1.7.0.9.txt +/usr/share/doc/git/RelNotes/1.7.0.txt +/usr/share/doc/git/RelNotes/1.7.1.1.txt +/usr/share/doc/git/RelNotes/1.7.1.2.txt +/usr/share/doc/git/RelNotes/1.7.1.3.txt +/usr/share/doc/git/RelNotes/1.7.1.4.txt +/usr/share/doc/git/RelNotes/1.7.1.txt +/usr/share/doc/git/RelNotes/1.7.10.1.txt +/usr/share/doc/git/RelNotes/1.7.10.2.txt +/usr/share/doc/git/RelNotes/1.7.10.3.txt +/usr/share/doc/git/RelNotes/1.7.10.4.txt +/usr/share/doc/git/RelNotes/1.7.10.5.txt +/usr/share/doc/git/RelNotes/1.7.10.txt +/usr/share/doc/git/RelNotes/1.7.11.1.txt +/usr/share/doc/git/RelNotes/1.7.11.2.txt +/usr/share/doc/git/RelNotes/1.7.11.3.txt +/usr/share/doc/git/RelNotes/1.7.11.4.txt +/usr/share/doc/git/RelNotes/1.7.11.5.txt +/usr/share/doc/git/RelNotes/1.7.11.6.txt +/usr/share/doc/git/RelNotes/1.7.11.7.txt +/usr/share/doc/git/RelNotes/1.7.11.txt +/usr/share/doc/git/RelNotes/1.7.12.1.txt +/usr/share/doc/git/RelNotes/1.7.12.2.txt +/usr/share/doc/git/RelNotes/1.7.12.3.txt +/usr/share/doc/git/RelNotes/1.7.12.4.txt +/usr/share/doc/git/RelNotes/1.7.12.txt +/usr/share/doc/git/RelNotes/1.7.2.1.txt +/usr/share/doc/git/RelNotes/1.7.2.2.txt +/usr/share/doc/git/RelNotes/1.7.2.3.txt +/usr/share/doc/git/RelNotes/1.7.2.4.txt +/usr/share/doc/git/RelNotes/1.7.2.5.txt +/usr/share/doc/git/RelNotes/1.7.2.txt +/usr/share/doc/git/RelNotes/1.7.3.1.txt +/usr/share/doc/git/RelNotes/1.7.3.2.txt +/usr/share/doc/git/RelNotes/1.7.3.3.txt +/usr/share/doc/git/RelNotes/1.7.3.4.txt +/usr/share/doc/git/RelNotes/1.7.3.5.txt +/usr/share/doc/git/RelNotes/1.7.3.txt +/usr/share/doc/git/RelNotes/1.7.4.1.txt +/usr/share/doc/git/RelNotes/1.7.4.2.txt +/usr/share/doc/git/RelNotes/1.7.4.3.txt +/usr/share/doc/git/RelNotes/1.7.4.4.txt +/usr/share/doc/git/RelNotes/1.7.4.5.txt +/usr/share/doc/git/RelNotes/1.7.4.txt +/usr/share/doc/git/RelNotes/1.7.5.1.txt +/usr/share/doc/git/RelNotes/1.7.5.2.txt +/usr/share/doc/git/RelNotes/1.7.5.3.txt +/usr/share/doc/git/RelNotes/1.7.5.4.txt +/usr/share/doc/git/RelNotes/1.7.5.txt +/usr/share/doc/git/RelNotes/1.7.6.1.txt +/usr/share/doc/git/RelNotes/1.7.6.2.txt +/usr/share/doc/git/RelNotes/1.7.6.3.txt +/usr/share/doc/git/RelNotes/1.7.6.4.txt +/usr/share/doc/git/RelNotes/1.7.6.5.txt +/usr/share/doc/git/RelNotes/1.7.6.6.txt +/usr/share/doc/git/RelNotes/1.7.6.txt +/usr/share/doc/git/RelNotes/1.7.7.1.txt +/usr/share/doc/git/RelNotes/1.7.7.2.txt +/usr/share/doc/git/RelNotes/1.7.7.3.txt +/usr/share/doc/git/RelNotes/1.7.7.4.txt +/usr/share/doc/git/RelNotes/1.7.7.5.txt +/usr/share/doc/git/RelNotes/1.7.7.6.txt +/usr/share/doc/git/RelNotes/1.7.7.7.txt +/usr/share/doc/git/RelNotes/1.7.7.txt +/usr/share/doc/git/RelNotes/1.7.8.1.txt +/usr/share/doc/git/RelNotes/1.7.8.2.txt +/usr/share/doc/git/RelNotes/1.7.8.3.txt +/usr/share/doc/git/RelNotes/1.7.8.4.txt +/usr/share/doc/git/RelNotes/1.7.8.5.txt +/usr/share/doc/git/RelNotes/1.7.8.6.txt +/usr/share/doc/git/RelNotes/1.7.8.txt +/usr/share/doc/git/RelNotes/1.7.9.1.txt +/usr/share/doc/git/RelNotes/1.7.9.2.txt +/usr/share/doc/git/RelNotes/1.7.9.3.txt +/usr/share/doc/git/RelNotes/1.7.9.4.txt +/usr/share/doc/git/RelNotes/1.7.9.5.txt +/usr/share/doc/git/RelNotes/1.7.9.6.txt +/usr/share/doc/git/RelNotes/1.7.9.7.txt +/usr/share/doc/git/RelNotes/1.7.9.txt +/usr/share/doc/git/RelNotes/1.8.0.1.txt +/usr/share/doc/git/RelNotes/1.8.0.2.txt +/usr/share/doc/git/RelNotes/1.8.0.3.txt +/usr/share/doc/git/RelNotes/1.8.0.txt +/usr/share/doc/git/RelNotes/1.8.1.1.txt +/usr/share/doc/git/RelNotes/1.8.1.2.txt +/usr/share/doc/git/RelNotes/1.8.1.3.txt +/usr/share/doc/git/RelNotes/1.8.1.4.txt +/usr/share/doc/git/RelNotes/1.8.1.5.txt +/usr/share/doc/git/RelNotes/1.8.1.6.txt +/usr/share/doc/git/RelNotes/1.8.1.txt +/usr/share/doc/git/RelNotes/1.8.2.1.txt +/usr/share/doc/git/RelNotes/1.8.2.2.txt +/usr/share/doc/git/RelNotes/1.8.2.3.txt +/usr/share/doc/git/RelNotes/1.8.2.txt +/usr/share/doc/git/RelNotes/1.8.3.1.txt +/usr/share/doc/git/RelNotes/1.8.3.2.txt +/usr/share/doc/git/RelNotes/1.8.3.3.txt +/usr/share/doc/git/RelNotes/1.8.3.4.txt +/usr/share/doc/git/RelNotes/1.8.3.txt +/usr/share/doc/git/RelNotes/1.8.4.1.txt +/usr/share/doc/git/RelNotes/1.8.4.2.txt +/usr/share/doc/git/RelNotes/1.8.4.3.txt +/usr/share/doc/git/RelNotes/1.8.4.4.txt +/usr/share/doc/git/RelNotes/1.8.4.5.txt +/usr/share/doc/git/RelNotes/1.8.4.txt +/usr/share/doc/git/RelNotes/1.8.5.1.txt +/usr/share/doc/git/RelNotes/1.8.5.2.txt +/usr/share/doc/git/RelNotes/1.8.5.3.txt +/usr/share/doc/git/RelNotes/1.8.5.4.txt +/usr/share/doc/git/RelNotes/1.8.5.5.txt +/usr/share/doc/git/RelNotes/1.8.5.6.txt +/usr/share/doc/git/RelNotes/1.8.5.txt +/usr/share/doc/git/RelNotes/1.9.0.txt +/usr/share/doc/git/RelNotes/1.9.1.txt +/usr/share/doc/git/RelNotes/1.9.2.txt +/usr/share/doc/git/RelNotes/1.9.3.txt +/usr/share/doc/git/RelNotes/1.9.4.txt +/usr/share/doc/git/RelNotes/1.9.5.txt +/usr/share/doc/git/RelNotes/2.0.0.txt +/usr/share/doc/git/RelNotes/2.0.1.txt +/usr/share/doc/git/RelNotes/2.0.2.txt +/usr/share/doc/git/RelNotes/2.0.3.txt +/usr/share/doc/git/RelNotes/2.0.4.txt +/usr/share/doc/git/RelNotes/2.0.5.txt +/usr/share/doc/git/RelNotes/2.1.0.txt +/usr/share/doc/git/RelNotes/2.1.1.txt +/usr/share/doc/git/RelNotes/2.1.2.txt +/usr/share/doc/git/RelNotes/2.1.3.txt +/usr/share/doc/git/RelNotes/2.1.4.txt +/usr/share/doc/git/RelNotes/2.10.0.txt +/usr/share/doc/git/RelNotes/2.10.1.txt +/usr/share/doc/git/RelNotes/2.10.2.txt +/usr/share/doc/git/RelNotes/2.10.3.txt +/usr/share/doc/git/RelNotes/2.10.4.txt +/usr/share/doc/git/RelNotes/2.10.5.txt +/usr/share/doc/git/RelNotes/2.11.0.txt +/usr/share/doc/git/RelNotes/2.11.1.txt +/usr/share/doc/git/RelNotes/2.11.2.txt +/usr/share/doc/git/RelNotes/2.11.3.txt +/usr/share/doc/git/RelNotes/2.11.4.txt +/usr/share/doc/git/RelNotes/2.12.0.txt +/usr/share/doc/git/RelNotes/2.12.1.txt +/usr/share/doc/git/RelNotes/2.12.2.txt +/usr/share/doc/git/RelNotes/2.12.3.txt +/usr/share/doc/git/RelNotes/2.12.4.txt +/usr/share/doc/git/RelNotes/2.12.5.txt +/usr/share/doc/git/RelNotes/2.13.0.txt +/usr/share/doc/git/RelNotes/2.13.1.txt +/usr/share/doc/git/RelNotes/2.13.2.txt +/usr/share/doc/git/RelNotes/2.13.3.txt +/usr/share/doc/git/RelNotes/2.13.4.txt +/usr/share/doc/git/RelNotes/2.13.5.txt +/usr/share/doc/git/RelNotes/2.13.6.txt +/usr/share/doc/git/RelNotes/2.13.7.txt +/usr/share/doc/git/RelNotes/2.14.0.txt +/usr/share/doc/git/RelNotes/2.14.1.txt +/usr/share/doc/git/RelNotes/2.14.2.txt +/usr/share/doc/git/RelNotes/2.14.3.txt +/usr/share/doc/git/RelNotes/2.14.4.txt +/usr/share/doc/git/RelNotes/2.14.5.txt +/usr/share/doc/git/RelNotes/2.14.6.txt +/usr/share/doc/git/RelNotes/2.15.0.txt +/usr/share/doc/git/RelNotes/2.15.1.txt +/usr/share/doc/git/RelNotes/2.15.2.txt +/usr/share/doc/git/RelNotes/2.15.3.txt +/usr/share/doc/git/RelNotes/2.15.4.txt +/usr/share/doc/git/RelNotes/2.16.0.txt +/usr/share/doc/git/RelNotes/2.16.1.txt +/usr/share/doc/git/RelNotes/2.16.2.txt +/usr/share/doc/git/RelNotes/2.16.3.txt +/usr/share/doc/git/RelNotes/2.16.4.txt +/usr/share/doc/git/RelNotes/2.16.5.txt +/usr/share/doc/git/RelNotes/2.16.6.txt +/usr/share/doc/git/RelNotes/2.17.0.txt +/usr/share/doc/git/RelNotes/2.17.1.txt +/usr/share/doc/git/RelNotes/2.17.2.txt +/usr/share/doc/git/RelNotes/2.17.3.txt +/usr/share/doc/git/RelNotes/2.18.0.txt +/usr/share/doc/git/RelNotes/2.18.1.txt +/usr/share/doc/git/RelNotes/2.18.2.txt +/usr/share/doc/git/RelNotes/2.19.0.txt +/usr/share/doc/git/RelNotes/2.19.1.txt +/usr/share/doc/git/RelNotes/2.19.2.txt +/usr/share/doc/git/RelNotes/2.19.3.txt +/usr/share/doc/git/RelNotes/2.2.0.txt +/usr/share/doc/git/RelNotes/2.2.1.txt +/usr/share/doc/git/RelNotes/2.2.2.txt +/usr/share/doc/git/RelNotes/2.2.3.txt +/usr/share/doc/git/RelNotes/2.20.0.txt +/usr/share/doc/git/RelNotes/2.20.1.txt +/usr/share/doc/git/RelNotes/2.20.2.txt +/usr/share/doc/git/RelNotes/2.21.0.txt +/usr/share/doc/git/RelNotes/2.21.1.txt +/usr/share/doc/git/RelNotes/2.22.0.txt +/usr/share/doc/git/RelNotes/2.22.1.txt +/usr/share/doc/git/RelNotes/2.22.2.txt +/usr/share/doc/git/RelNotes/2.23.0.txt +/usr/share/doc/git/RelNotes/2.23.1.txt +/usr/share/doc/git/RelNotes/2.24.0.txt +/usr/share/doc/git/RelNotes/2.24.1.txt +/usr/share/doc/git/RelNotes/2.25.0.txt +/usr/share/doc/git/RelNotes/2.25.1.txt +/usr/share/doc/git/RelNotes/2.3.0.txt +/usr/share/doc/git/RelNotes/2.3.1.txt +/usr/share/doc/git/RelNotes/2.3.10.txt +/usr/share/doc/git/RelNotes/2.3.2.txt +/usr/share/doc/git/RelNotes/2.3.3.txt +/usr/share/doc/git/RelNotes/2.3.4.txt +/usr/share/doc/git/RelNotes/2.3.5.txt +/usr/share/doc/git/RelNotes/2.3.6.txt +/usr/share/doc/git/RelNotes/2.3.7.txt +/usr/share/doc/git/RelNotes/2.3.8.txt +/usr/share/doc/git/RelNotes/2.3.9.txt +/usr/share/doc/git/RelNotes/2.4.0.txt +/usr/share/doc/git/RelNotes/2.4.1.txt +/usr/share/doc/git/RelNotes/2.4.10.txt +/usr/share/doc/git/RelNotes/2.4.11.txt +/usr/share/doc/git/RelNotes/2.4.12.txt +/usr/share/doc/git/RelNotes/2.4.2.txt +/usr/share/doc/git/RelNotes/2.4.3.txt +/usr/share/doc/git/RelNotes/2.4.4.txt +/usr/share/doc/git/RelNotes/2.4.5.txt +/usr/share/doc/git/RelNotes/2.4.6.txt +/usr/share/doc/git/RelNotes/2.4.7.txt +/usr/share/doc/git/RelNotes/2.4.8.txt +/usr/share/doc/git/RelNotes/2.4.9.txt +/usr/share/doc/git/RelNotes/2.5.0.txt +/usr/share/doc/git/RelNotes/2.5.1.txt +/usr/share/doc/git/RelNotes/2.5.2.txt +/usr/share/doc/git/RelNotes/2.5.3.txt +/usr/share/doc/git/RelNotes/2.5.4.txt +/usr/share/doc/git/RelNotes/2.5.5.txt +/usr/share/doc/git/RelNotes/2.5.6.txt +/usr/share/doc/git/RelNotes/2.6.0.txt +/usr/share/doc/git/RelNotes/2.6.1.txt +/usr/share/doc/git/RelNotes/2.6.2.txt +/usr/share/doc/git/RelNotes/2.6.3.txt +/usr/share/doc/git/RelNotes/2.6.4.txt +/usr/share/doc/git/RelNotes/2.6.5.txt +/usr/share/doc/git/RelNotes/2.6.6.txt +/usr/share/doc/git/RelNotes/2.6.7.txt +/usr/share/doc/git/RelNotes/2.7.0.txt +/usr/share/doc/git/RelNotes/2.7.1.txt +/usr/share/doc/git/RelNotes/2.7.2.txt +/usr/share/doc/git/RelNotes/2.7.3.txt +/usr/share/doc/git/RelNotes/2.7.4.txt +/usr/share/doc/git/RelNotes/2.7.5.txt +/usr/share/doc/git/RelNotes/2.7.6.txt +/usr/share/doc/git/RelNotes/2.8.0.txt +/usr/share/doc/git/RelNotes/2.8.1.txt +/usr/share/doc/git/RelNotes/2.8.2.txt +/usr/share/doc/git/RelNotes/2.8.3.txt +/usr/share/doc/git/RelNotes/2.8.4.txt +/usr/share/doc/git/RelNotes/2.8.5.txt +/usr/share/doc/git/RelNotes/2.8.6.txt +/usr/share/doc/git/RelNotes/2.9.0.txt +/usr/share/doc/git/RelNotes/2.9.1.txt +/usr/share/doc/git/RelNotes/2.9.2.txt +/usr/share/doc/git/RelNotes/2.9.3.txt +/usr/share/doc/git/RelNotes/2.9.4.txt +/usr/share/doc/git/RelNotes/2.9.5.txt +/usr/share/doc/git/changelog.Debian.gz +/usr/share/doc/git/contrib +/usr/share/doc/git/contrib/README +/usr/share/doc/git/contrib/buildsystems +/usr/share/doc/git/contrib/buildsystems/Generators +/usr/share/doc/git/contrib/buildsystems/Generators/QMake.pm +/usr/share/doc/git/contrib/buildsystems/Generators/Vcproj.pm +/usr/share/doc/git/contrib/buildsystems/Generators/Vcxproj.pm +/usr/share/doc/git/contrib/buildsystems/Generators.pm +/usr/share/doc/git/contrib/buildsystems/engine.pl +/usr/share/doc/git/contrib/buildsystems/generate +/usr/share/doc/git/contrib/buildsystems/parse.pl +/usr/share/doc/git/contrib/coccinelle +/usr/share/doc/git/contrib/coccinelle/README +/usr/share/doc/git/contrib/coccinelle/array.cocci +/usr/share/doc/git/contrib/coccinelle/commit.cocci +/usr/share/doc/git/contrib/coccinelle/flex_alloc.cocci +/usr/share/doc/git/contrib/coccinelle/free.cocci +/usr/share/doc/git/contrib/coccinelle/hashmap.cocci +/usr/share/doc/git/contrib/coccinelle/object_id.cocci +/usr/share/doc/git/contrib/coccinelle/preincr.cocci +/usr/share/doc/git/contrib/coccinelle/qsort.cocci +/usr/share/doc/git/contrib/coccinelle/strbuf.cocci +/usr/share/doc/git/contrib/coccinelle/swap.cocci +/usr/share/doc/git/contrib/coccinelle/the_repository.pending.cocci +/usr/share/doc/git/contrib/coccinelle/xstrdup_or_null.cocci +/usr/share/doc/git/contrib/contacts +/usr/share/doc/git/contrib/contacts/Makefile +/usr/share/doc/git/contrib/contacts/git-contacts +/usr/share/doc/git/contrib/contacts/git-contacts.txt +/usr/share/doc/git/contrib/coverage-diff.sh +/usr/share/doc/git/contrib/credential +/usr/share/doc/git/contrib/credential/gnome-keyring +/usr/share/doc/git/contrib/credential/gnome-keyring/Makefile +/usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring.c +/usr/share/doc/git/contrib/credential/libsecret +/usr/share/doc/git/contrib/credential/libsecret/Makefile +/usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret.c +/usr/share/doc/git/contrib/credential/netrc +/usr/share/doc/git/contrib/credential/netrc/Makefile +/usr/share/doc/git/contrib/credential/netrc/git-credential-netrc +/usr/share/doc/git/contrib/credential/netrc/t-git-credential-netrc.sh +/usr/share/doc/git/contrib/credential/netrc/test.command-option-gpg +/usr/share/doc/git/contrib/credential/netrc/test.git-config-gpg +/usr/share/doc/git/contrib/credential/netrc/test.netrc +/usr/share/doc/git/contrib/credential/netrc/test.pl +/usr/share/doc/git/contrib/credential/osxkeychain +/usr/share/doc/git/contrib/credential/osxkeychain/Makefile +/usr/share/doc/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c +/usr/share/doc/git/contrib/credential/wincred +/usr/share/doc/git/contrib/credential/wincred/Makefile +/usr/share/doc/git/contrib/credential/wincred/git-credential-wincred.c +/usr/share/doc/git/contrib/diff-highlight +/usr/share/doc/git/contrib/diff-highlight/DiffHighlight.pm +/usr/share/doc/git/contrib/diff-highlight/Makefile +/usr/share/doc/git/contrib/diff-highlight/README +/usr/share/doc/git/contrib/diff-highlight/diff-highlight +/usr/share/doc/git/contrib/diff-highlight/diff-highlight.perl +/usr/share/doc/git/contrib/diff-highlight/shebang.perl +/usr/share/doc/git/contrib/diff-highlight/t +/usr/share/doc/git/contrib/diff-highlight/t/Makefile +/usr/share/doc/git/contrib/diff-highlight/t/t9400-diff-highlight.sh +/usr/share/doc/git/contrib/examples +/usr/share/doc/git/contrib/examples/README +/usr/share/doc/git/contrib/fast-import +/usr/share/doc/git/contrib/fast-import/git-import.perl +/usr/share/doc/git/contrib/fast-import/git-import.sh +/usr/share/doc/git/contrib/fast-import/git-p4.README +/usr/share/doc/git/contrib/fast-import/import-directories.perl +/usr/share/doc/git/contrib/fast-import/import-tars.perl +/usr/share/doc/git/contrib/fast-import/import-zips.py +/usr/share/doc/git/contrib/git-jump +/usr/share/doc/git/contrib/git-jump/README +/usr/share/doc/git/contrib/git-jump/git-jump +/usr/share/doc/git/contrib/git-resurrect.sh +/usr/share/doc/git/contrib/git-shell-commands +/usr/share/doc/git/contrib/git-shell-commands/README +/usr/share/doc/git/contrib/git-shell-commands/help +/usr/share/doc/git/contrib/git-shell-commands/list +/usr/share/doc/git/contrib/hg-to-git +/usr/share/doc/git/contrib/hg-to-git/hg-to-git.py +/usr/share/doc/git/contrib/hg-to-git/hg-to-git.txt +/usr/share/doc/git/contrib/long-running-filter +/usr/share/doc/git/contrib/long-running-filter/example.pl +/usr/share/doc/git/contrib/persistent-https +/usr/share/doc/git/contrib/persistent-https/Makefile +/usr/share/doc/git/contrib/persistent-https/README +/usr/share/doc/git/contrib/persistent-https/client.go +/usr/share/doc/git/contrib/persistent-https/main.go +/usr/share/doc/git/contrib/persistent-https/proxy.go +/usr/share/doc/git/contrib/persistent-https/socket.go +/usr/share/doc/git/contrib/remote-helpers +/usr/share/doc/git/contrib/remote-helpers/README +/usr/share/doc/git/contrib/remote-helpers/git-remote-bzr +/usr/share/doc/git/contrib/remote-helpers/git-remote-hg +/usr/share/doc/git/contrib/remotes2config.sh +/usr/share/doc/git/contrib/rerere-train.sh +/usr/share/doc/git/contrib/stats +/usr/share/doc/git/contrib/stats/git-common-hash +/usr/share/doc/git/contrib/stats/mailmap.pl +/usr/share/doc/git/contrib/stats/packinfo.pl +/usr/share/doc/git/contrib/subtree +/usr/share/doc/git/contrib/subtree/INSTALL +/usr/share/doc/git/contrib/subtree/Makefile +/usr/share/doc/git/contrib/subtree/README +/usr/share/doc/git/contrib/subtree/git-subtree +/usr/share/doc/git/contrib/subtree/git-subtree.sh +/usr/share/doc/git/contrib/subtree/git-subtree.txt +/usr/share/doc/git/contrib/subtree/t +/usr/share/doc/git/contrib/subtree/t/Makefile +/usr/share/doc/git/contrib/subtree/t/t7900-subtree.sh +/usr/share/doc/git/contrib/subtree/todo +/usr/share/doc/git/contrib/svn-fe +/usr/share/doc/git/contrib/svn-fe/Makefile +/usr/share/doc/git/contrib/svn-fe/svn-fe.c +/usr/share/doc/git/contrib/svn-fe/svn-fe.txt +/usr/share/doc/git/contrib/svn-fe/svnrdump_sim.py +/usr/share/doc/git/contrib/thunderbird-patch-inline +/usr/share/doc/git/contrib/thunderbird-patch-inline/README +/usr/share/doc/git/contrib/thunderbird-patch-inline/appp.sh +/usr/share/doc/git/contrib/update-unicode +/usr/share/doc/git/contrib/update-unicode/README +/usr/share/doc/git/contrib/update-unicode/update_unicode.sh +/usr/share/doc/git/contrib/vscode +/usr/share/doc/git/contrib/vscode/README.md +/usr/share/doc/git/contrib/vscode/init.sh +/usr/share/doc/git/contrib/workdir +/usr/share/doc/git/contrib/workdir/git-new-workdir +/usr/share/doc/git/copyright +/usr/share/git-core +/usr/share/git-core/contrib +/usr/share/git-core/contrib/hooks +/usr/share/git-core/contrib/hooks/post-receive-email +/usr/share/git-core/contrib/hooks/pre-auto-gc-battery +/usr/share/git-core/contrib/hooks/setgitperms.perl +/usr/share/git-core/contrib/hooks/update-paranoid +/usr/share/git-core/templates +/usr/share/git-core/templates/branches +/usr/share/git-core/templates/description +/usr/share/git-core/templates/hooks +/usr/share/git-core/templates/hooks/applypatch-msg.sample +/usr/share/git-core/templates/hooks/commit-msg.sample +/usr/share/git-core/templates/hooks/fsmonitor-watchman.sample +/usr/share/git-core/templates/hooks/post-update.sample +/usr/share/git-core/templates/hooks/pre-applypatch.sample +/usr/share/git-core/templates/hooks/pre-commit.sample +/usr/share/git-core/templates/hooks/pre-merge-commit.sample +/usr/share/git-core/templates/hooks/pre-push.sample +/usr/share/git-core/templates/hooks/pre-rebase.sample +/usr/share/git-core/templates/hooks/pre-receive.sample +/usr/share/git-core/templates/hooks/prepare-commit-msg.sample +/usr/share/git-core/templates/hooks/update.sample +/usr/share/git-core/templates/info +/usr/share/git-core/templates/info/exclude +/usr/share/gitweb +/usr/share/gitweb/gitweb.cgi +/usr/share/gitweb/static +/usr/share/gitweb/static/git-favicon.png +/usr/share/gitweb/static/git-logo.png +/usr/share/gitweb/static/gitweb.css +/usr/share/gitweb/static/gitweb.js +/usr/share/lintian +/usr/share/lintian/overrides +/usr/share/lintian/overrides/git +/usr/share/perl5 +/usr/share/perl5/Git +/usr/share/perl5/Git/I18N.pm +/usr/share/perl5/Git/IndexInfo.pm +/usr/share/perl5/Git/LoadCPAN +/usr/share/perl5/Git/LoadCPAN/Error.pm +/usr/share/perl5/Git/LoadCPAN/Mail +/usr/share/perl5/Git/LoadCPAN/Mail/Address.pm +/usr/share/perl5/Git/LoadCPAN.pm +/usr/share/perl5/Git/Packet.pm +/usr/share/perl5/Git.pm +/var +/var/lib +/var/lib/git +/usr/bin/git-receive-pack +/usr/bin/git-upload-archive +/usr/bin/git-upload-pack +/usr/lib/git-core/git-add +/usr/lib/git-core/git-am +/usr/lib/git-core/git-annotate +/usr/lib/git-core/git-apply +/usr/lib/git-core/git-archive +/usr/lib/git-core/git-bisect--helper +/usr/lib/git-core/git-blame +/usr/lib/git-core/git-branch +/usr/lib/git-core/git-bundle +/usr/lib/git-core/git-cat-file +/usr/lib/git-core/git-check-attr +/usr/lib/git-core/git-check-ignore +/usr/lib/git-core/git-check-mailmap +/usr/lib/git-core/git-check-ref-format +/usr/lib/git-core/git-checkout +/usr/lib/git-core/git-checkout-index +/usr/lib/git-core/git-cherry +/usr/lib/git-core/git-cherry-pick +/usr/lib/git-core/git-clean +/usr/lib/git-core/git-clone +/usr/lib/git-core/git-column +/usr/lib/git-core/git-commit +/usr/lib/git-core/git-commit-graph +/usr/lib/git-core/git-commit-tree +/usr/lib/git-core/git-config +/usr/lib/git-core/git-count-objects +/usr/lib/git-core/git-credential +/usr/lib/git-core/git-describe +/usr/lib/git-core/git-diff +/usr/lib/git-core/git-diff-files +/usr/lib/git-core/git-diff-index +/usr/lib/git-core/git-diff-tree +/usr/lib/git-core/git-difftool +/usr/lib/git-core/git-env--helper +/usr/lib/git-core/git-fast-export +/usr/lib/git-core/git-fetch +/usr/lib/git-core/git-fetch-pack +/usr/lib/git-core/git-fmt-merge-msg +/usr/lib/git-core/git-for-each-ref +/usr/lib/git-core/git-format-patch +/usr/lib/git-core/git-fsck +/usr/lib/git-core/git-fsck-objects +/usr/lib/git-core/git-gc +/usr/lib/git-core/git-get-tar-commit-id +/usr/lib/git-core/git-grep +/usr/lib/git-core/git-hash-object +/usr/lib/git-core/git-help +/usr/lib/git-core/git-index-pack +/usr/lib/git-core/git-init +/usr/lib/git-core/git-init-db +/usr/lib/git-core/git-interpret-trailers +/usr/lib/git-core/git-log +/usr/lib/git-core/git-ls-files +/usr/lib/git-core/git-ls-remote +/usr/lib/git-core/git-ls-tree +/usr/lib/git-core/git-mailinfo +/usr/lib/git-core/git-mailsplit +/usr/lib/git-core/git-merge +/usr/lib/git-core/git-merge-base +/usr/lib/git-core/git-merge-file +/usr/lib/git-core/git-merge-index +/usr/lib/git-core/git-merge-ours +/usr/lib/git-core/git-merge-recursive +/usr/lib/git-core/git-merge-subtree +/usr/lib/git-core/git-merge-tree +/usr/lib/git-core/git-mktag +/usr/lib/git-core/git-mktree +/usr/lib/git-core/git-multi-pack-index +/usr/lib/git-core/git-mv +/usr/lib/git-core/git-name-rev +/usr/lib/git-core/git-notes +/usr/lib/git-core/git-pack-objects +/usr/lib/git-core/git-pack-redundant +/usr/lib/git-core/git-pack-refs +/usr/lib/git-core/git-patch-id +/usr/lib/git-core/git-prune +/usr/lib/git-core/git-prune-packed +/usr/lib/git-core/git-pull +/usr/lib/git-core/git-push +/usr/lib/git-core/git-range-diff +/usr/lib/git-core/git-read-tree +/usr/lib/git-core/git-rebase +/usr/lib/git-core/git-receive-pack +/usr/lib/git-core/git-reflog +/usr/lib/git-core/git-remote +/usr/lib/git-core/git-remote-ext +/usr/lib/git-core/git-remote-fd +/usr/lib/git-core/git-remote-ftp +/usr/lib/git-core/git-remote-ftps +/usr/lib/git-core/git-remote-https +/usr/lib/git-core/git-repack +/usr/lib/git-core/git-replace +/usr/lib/git-core/git-rerere +/usr/lib/git-core/git-reset +/usr/lib/git-core/git-restore +/usr/lib/git-core/git-rev-list +/usr/lib/git-core/git-rev-parse +/usr/lib/git-core/git-revert +/usr/lib/git-core/git-rm +/usr/lib/git-core/git-send-pack +/usr/lib/git-core/git-shortlog +/usr/lib/git-core/git-show +/usr/lib/git-core/git-show-branch +/usr/lib/git-core/git-show-index +/usr/lib/git-core/git-show-ref +/usr/lib/git-core/git-sparse-checkout +/usr/lib/git-core/git-stage +/usr/lib/git-core/git-stash +/usr/lib/git-core/git-status +/usr/lib/git-core/git-stripspace +/usr/lib/git-core/git-submodule--helper +/usr/lib/git-core/git-switch +/usr/lib/git-core/git-symbolic-ref +/usr/lib/git-core/git-tag +/usr/lib/git-core/git-unpack-file +/usr/lib/git-core/git-unpack-objects +/usr/lib/git-core/git-update-index +/usr/lib/git-core/git-update-ref +/usr/lib/git-core/git-update-server-info +/usr/lib/git-core/git-upload-archive +/usr/lib/git-core/git-upload-pack +/usr/lib/git-core/git-var +/usr/lib/git-core/git-verify-commit +/usr/lib/git-core/git-verify-pack +/usr/lib/git-core/git-verify-tag +/usr/lib/git-core/git-whatchanged +/usr/lib/git-core/git-worktree +/usr/lib/git-core/git-write-tree +/usr/share/bash-completion/completions/gitk +/usr/share/doc/git/contrib/hooks +/usr/share/doc/git/contrib/persistent-https/LICENSE +/usr/share/doc/git/contrib/subtree/COPYING +/usr/share/gitweb/index.cgi +/. +/etc +/etc/wgetrc +/usr +/usr/bin +/usr/bin/wget +/usr/share +/usr/share/doc +/usr/share/doc/wget +/usr/share/doc/wget/AUTHORS +/usr/share/doc/wget/MAILING-LIST +/usr/share/doc/wget/NEWS.gz +/usr/share/doc/wget/README +/usr/share/doc/wget/changelog.Debian.gz +/usr/share/doc/wget/copyright +/usr/share/info +/usr/share/info/wget.info.gz +/usr/share/man +/usr/share/man/man1 +/usr/share/man/man1/wget.1.gz +/. +/usr +/usr/bin +/usr/bin/curl +/usr/share +/usr/share/doc +/usr/share/doc/curl +/usr/share/doc/curl/copyright +/usr/share/man +/usr/share/man/man1 +/usr/share/man/man1/curl.1.gz +/usr/share/zsh +/usr/share/zsh/vendor-completions +/usr/share/zsh/vendor-completions/_curl +/usr/share/doc/curl/NEWS.Debian.gz +/usr/share/doc/curl/changelog.Debian.gz +/. +/bin +/bin/tar +/etc +/usr +/usr/lib +/usr/lib/mime +/usr/lib/mime/packages +/usr/lib/mime/packages/tar +/usr/sbin +/usr/sbin/rmt-tar +/usr/sbin/tarcat +/usr/share +/usr/share/doc +/usr/share/doc/tar +/usr/share/doc/tar/AUTHORS +/usr/share/doc/tar/NEWS.gz +/usr/share/doc/tar/README.Debian +/usr/share/doc/tar/THANKS.gz +/usr/share/doc/tar/changelog.Debian.gz +/usr/share/doc/tar/copyright +/usr/share/man +/usr/share/man/man1 +/usr/share/man/man1/tar.1.gz +/usr/share/man/man1/tarcat.1.gz +/usr/share/man/man8 +/usr/share/man/man8/rmt-tar.8.gz +/etc/rmt +/. +/etc +/etc/apparmor.d +/etc/apparmor.d/usr.lib.snapd.snap-confine.real +/etc/apt +/etc/apt/apt.conf.d +/etc/apt/apt.conf.d/20snapd.conf +/etc/profile.d +/etc/profile.d/apps-bin-path.sh +/etc/xdg +/etc/xdg/autostart +/etc/xdg/autostart/snap-userd-autostart.desktop +/lib +/lib/systemd +/lib/systemd/system +/lib/systemd/system/snapd.apparmor.service +/lib/systemd/system/snapd.autoimport.service +/lib/systemd/system/snapd.core-fixup.service +/lib/systemd/system/snapd.failure.service +/lib/systemd/system/snapd.recovery-chooser-trigger.service +/lib/systemd/system/snapd.seeded.service +/lib/systemd/system/snapd.service +/lib/systemd/system/snapd.snap-repair.service +/lib/systemd/system/snapd.snap-repair.timer +/lib/systemd/system/snapd.socket +/lib/systemd/system/snapd.system-shutdown.service +/lib/systemd/system-generators +/lib/systemd/system-generators/snapd-generator +/lib/udev +/lib/udev/rules.d +/lib/udev/rules.d/66-snapd-autoimport.rules +/snap +/usr +/usr/bin +/usr/bin/snap +/usr/bin/snapfuse +/usr/lib +/usr/lib/environment.d +/usr/lib/environment.d/990-snapd.conf +/usr/lib/snapd +/usr/lib/snapd/complete.sh +/usr/lib/snapd/etelpmoc.sh +/usr/lib/snapd/info +/usr/lib/snapd/snap-bootstrap +/usr/lib/snapd/snap-confine +/usr/lib/snapd/snap-device-helper +/usr/lib/snapd/snap-discard-ns +/usr/lib/snapd/snap-exec +/usr/lib/snapd/snap-failure +/usr/lib/snapd/snap-gdb-shim +/usr/lib/snapd/snap-gdbserver-shim +/usr/lib/snapd/snap-mgmt +/usr/lib/snapd/snap-preseed +/usr/lib/snapd/snap-recovery-chooser +/usr/lib/snapd/snap-repair +/usr/lib/snapd/snap-seccomp +/usr/lib/snapd/snap-update-ns +/usr/lib/snapd/snapctl +/usr/lib/snapd/snapd +/usr/lib/snapd/snapd-apparmor +/usr/lib/snapd/snapd.core-fixup.sh +/usr/lib/snapd/snapd.run-from-snap +/usr/lib/snapd/system-shutdown +/usr/lib/systemd +/usr/lib/systemd/system-environment-generators +/usr/lib/systemd/system-environment-generators/snapd-env-generator +/usr/lib/systemd/user +/usr/lib/systemd/user/snapd.session-agent.service +/usr/lib/systemd/user/snapd.session-agent.socket +/usr/lib/systemd/user/sockets.target.wants +/usr/share +/usr/share/applications +/usr/share/applications/io.snapcraft.SessionAgent.desktop +/usr/share/applications/snap-handle-link.desktop +/usr/share/bash-completion +/usr/share/bash-completion/completions +/usr/share/bash-completion/completions/snap +/usr/share/dbus-1 +/usr/share/dbus-1/services +/usr/share/dbus-1/services/io.snapcraft.Launcher.service +/usr/share/dbus-1/services/io.snapcraft.SessionAgent.service +/usr/share/dbus-1/services/io.snapcraft.Settings.service +/usr/share/dbus-1/session.d +/usr/share/dbus-1/session.d/snapd.session-services.conf +/usr/share/dbus-1/system.d +/usr/share/dbus-1/system.d/snapd.system-services.conf +/usr/share/doc +/usr/share/doc/snapd +/usr/share/doc/snapd/changelog.gz +/usr/share/doc/snapd/copyright +/usr/share/fish +/usr/share/fish/vendor_conf.d +/usr/share/fish/vendor_conf.d/snapd.fish +/usr/share/man +/usr/share/man/man8 +/usr/share/man/man8/snap-confine.8.gz +/usr/share/man/man8/snap-discard-ns.8.gz +/usr/share/man/man8/snap.8.gz +/usr/share/man/man8/snapd-env-generator.8.gz +/usr/share/polkit-1 +/usr/share/polkit-1/actions +/usr/share/polkit-1/actions/io.snapcraft.snapd.policy +/usr/share/zsh +/usr/share/zsh/vendor-completions +/usr/share/zsh/vendor-completions/_snap +/var +/var/cache +/var/cache/snapd +/var/lib +/var/lib/snapd +/var/lib/snapd/apparmor +/var/lib/snapd/apparmor/snap-confine +/var/lib/snapd/auto-import +/var/lib/snapd/dbus-1 +/var/lib/snapd/dbus-1/services +/var/lib/snapd/dbus-1/system-services +/var/lib/snapd/desktop +/var/lib/snapd/desktop/applications +/var/lib/snapd/environment +/var/lib/snapd/firstboot +/var/lib/snapd/inhibit +/var/lib/snapd/lib +/var/lib/snapd/lib/gl +/var/lib/snapd/lib/gl32 +/var/lib/snapd/lib/glvnd +/var/lib/snapd/lib/vulkan +/var/lib/snapd/snaps +/var/lib/snapd/snaps/partial +/var/lib/snapd/ssl +/var/lib/snapd/ssl/store-certs +/var/lib/snapd/void +/var/snap +/lib/udev/snappy-app-dev +/usr/bin/snapctl +/usr/bin/ubuntu-core-launcher +/usr/lib/systemd/user/sockets.target.wants/snapd.session-agent.socket +Required packages are present: git wget curl tar snapd +jq 1.5+dfsg-1 from Michael Vogt (mvo*) installed +Track start release: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656514104&event=start&operation=release&value=ReleaseELEVEN&comment=&tags= +Track start docker_tag: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656514104&event=start&operation=docker_tag&value=11&comment=&tags= +Track start installation_type: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656514104&event=start&operation=installation_type&value=Default&comment=&tags= +Track checks checkingroot_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656514104&event=checks&operation=checkingroot_ok&value=&comment=&tags= +Track checks noroot_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656514104&event=checks&operation=noroot_ok&value=&comment=&tags= +The installation will do the following + 1. Install and configure LXD + 2. Install juju + 3. Install docker CE + 4. Disable swap space + 5. Install and initialize Kubernetes + as pre-requirements. + Do you want to proceed (Y/n)? Y +Track checks proceed_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656514168&event=checks&operation=proceed_ok&value=&comment=&tags= +Installing OSM +Determining IP address of the interface with the default route +* Applying /etc/sysctl.d/10-console-messages.conf ... +kernel.printk = 4 4 1 7 +* Applying /etc/sysctl.d/10-ipv6-privacy.conf ... +net.ipv6.conf.all.use_tempaddr = 2 +net.ipv6.conf.default.use_tempaddr = 2 +* Applying /etc/sysctl.d/10-kernel-hardening.conf ... +kernel.kptr_restrict = 1 +* Applying /etc/sysctl.d/10-link-restrictions.conf ... +fs.protected_hardlinks = 1 +fs.protected_symlinks = 1 +* Applying /etc/sysctl.d/10-magic-sysrq.conf ... +kernel.sysrq = 176 +* Applying /etc/sysctl.d/10-network-security.conf ... +net.ipv4.conf.default.rp_filter = 2 +net.ipv4.conf.all.rp_filter = 2 +* Applying /etc/sysctl.d/10-ptrace.conf ... +kernel.yama.ptrace_scope = 1 +* Applying /etc/sysctl.d/10-zeropage.conf ... +vm.mmap_min_addr = 65536 +* Applying /usr/lib/sysctl.d/50-default.conf ... +net.ipv4.conf.default.promote_secondaries = 1 +sysctl: setting key "net.ipv4.conf.all.promote_secondaries": Invalid argument +net.ipv4.ping_group_range = 0 2147483647 +net.core.default_qdisc = fq_codel +fs.protected_regular = 1 +fs.protected_fifos = 1 +* Applying /usr/lib/sysctl.d/50-pid-max.conf ... +kernel.pid_max = 4194304 +* Applying /etc/sysctl.d/60-lxd-production.conf ... +fs.inotify.max_queued_events = 1048576 +fs.inotify.max_user_instances = 1048576 +fs.inotify.max_user_watches = 1048576 +vm.max_map_count = 262144 +kernel.dmesg_restrict = 1 +net.ipv4.neigh.default.gc_thresh3 = 8192 +net.ipv6.neigh.default.gc_thresh3 = 8192 +sysctl: setting key "net.core.bpf_jit_limit": Invalid argument +kernel.keys.maxkeys = 2000 +kernel.keys.maxbytes = 2000000 +* Applying /etc/sysctl.d/99-cloudimg-ipv6.conf ... +net.ipv6.conf.all.use_tempaddr = 0 +net.ipv6.conf.default.use_tempaddr = 0 +* Applying /etc/sysctl.d/99-sysctl.conf ... +* Applying /usr/lib/sysctl.d/protect-links.conf ... +fs.protected_fifos = 1 +fs.protected_hardlinks = 1 +fs.protected_regular = 2 +fs.protected_symlinks = 1 +* Applying /etc/sysctl.conf ... +Reading package lists... +Building dependency tree... +Reading state information... +Package 'lxcfs' is not installed, so not removed +Package 'liblxc1' is not installed, so not removed +Package 'lxd' is not installed, so not removed +Package 'lxd-client' is not installed, so not removed +0 upgraded, 0 newly installed, 0 to remove and 18 not upgraded. +snap "lxd" is already installed, see 'snap help refresh' +To start your first container, try: lxc launch ubuntu:20.04 +Or for a virtual machine: lxc launch ubuntu:20.04 --vm + +Track prereq prereqok_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656514180&event=prereq&operation=prereqok_ok&value=&comment=&tags= +DEBUG_INSTALL= +DOCKER_PROXY_URL= +USER=ubuntu +Installing Docker CE ... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +ca-certificates is already the newest version (20211016~20.04.1). +ca-certificates set to manually installed. +software-properties-common is already the newest version (0.99.9.8). +software-properties-common set to manually installed. +The following NEW packages will be installed: + apt-transport-https +0 upgraded, 1 newly installed, 0 to remove and 18 not upgraded. +Need to get 1704 B of archives. +After this operation, 162 kB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 apt-transport-https all 2.0.9 [1704 B] +Fetched 1704 B in 0s (27.7 kB/s) +Selecting previously unselected package apt-transport-https. +(Reading database ... 64950 files and directories currently installed.) +Preparing to unpack .../apt-transport-https_2.0.9_all.deb ... +Unpacking apt-transport-https (2.0.9) ... +Setting up apt-transport-https (2.0.9) ... +OK +Get:1 https://download.docker.com/linux/ubuntu focal InRelease [57.7 kB] +Hit:2 http://security.ubuntu.com/ubuntu focal-security InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:6 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Get:7 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages [17.6 kB] +Fetched 75.2 kB in 1s (103 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following additional packages will be installed: + containerd.io docker-ce-cli docker-ce-rootless-extras docker-scan-plugin + pigz slirp4netns +Suggested packages: + aufs-tools cgroupfs-mount | cgroup-lite +The following NEW packages will be installed: + containerd.io docker-ce docker-ce-cli docker-ce-rootless-extras + docker-scan-plugin pigz slirp4netns +0 upgraded, 7 newly installed, 0 to remove and 18 not upgraded. +Need to get 102 MB of archives. +After this operation, 422 MB of additional disk space will be used. +Get:1 https://download.docker.com/linux/ubuntu focal/stable amd64 containerd.io amd64 1.6.6-1 [28.1 MB] +Get:2 http://archive.ubuntu.com/ubuntu focal/universe amd64 pigz amd64 2.4-1 [57.4 kB] +Get:3 http://archive.ubuntu.com/ubuntu focal/universe amd64 slirp4netns amd64 0.4.3-1 [74.3 kB] +Get:4 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce-cli amd64 5:20.10.17~3-0~ubuntu-focal [40.6 MB] +Get:5 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce amd64 5:20.10.17~3-0~ubuntu-focal [21.0 MB] +Get:6 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce-rootless-extras amd64 5:20.10.17~3-0~ubuntu-focal [8171 kB] +Get:7 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-scan-plugin amd64 0.17.0~ubuntu-focal [3521 kB] +Fetched 102 MB in 2s (43.3 MB/s) +Selecting previously unselected package pigz. +(Reading database ... 64954 files and directories currently installed.) +Preparing to unpack .../0-pigz_2.4-1_amd64.deb ... +Unpacking pigz (2.4-1) ... +Selecting previously unselected package containerd.io. +Preparing to unpack .../1-containerd.io_1.6.6-1_amd64.deb ... +Unpacking containerd.io (1.6.6-1) ... +Selecting previously unselected package docker-ce-cli. +Preparing to unpack .../2-docker-ce-cli_5%3a20.10.17~3-0~ubuntu-focal_amd64.deb ... +Unpacking docker-ce-cli (5:20.10.17~3-0~ubuntu-focal) ... +Selecting previously unselected package docker-ce. +Preparing to unpack .../3-docker-ce_5%3a20.10.17~3-0~ubuntu-focal_amd64.deb ... +Unpacking docker-ce (5:20.10.17~3-0~ubuntu-focal) ... +Selecting previously unselected package docker-ce-rootless-extras. +Preparing to unpack .../4-docker-ce-rootless-extras_5%3a20.10.17~3-0~ubuntu-focal_amd64.deb ... +Unpacking docker-ce-rootless-extras (5:20.10.17~3-0~ubuntu-focal) ... +Selecting previously unselected package docker-scan-plugin. +Preparing to unpack .../5-docker-scan-plugin_0.17.0~ubuntu-focal_amd64.deb ... +Unpacking docker-scan-plugin (0.17.0~ubuntu-focal) ... +Selecting previously unselected package slirp4netns. +Preparing to unpack .../6-slirp4netns_0.4.3-1_amd64.deb ... +Unpacking slirp4netns (0.4.3-1) ... +Setting up slirp4netns (0.4.3-1) ... +Setting up docker-scan-plugin (0.17.0~ubuntu-focal) ... +Setting up containerd.io (1.6.6-1) ... +Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service. +Setting up docker-ce-cli (5:20.10.17~3-0~ubuntu-focal) ... +Setting up pigz (2.4-1) ... +Setting up docker-ce-rootless-extras (5:20.10.17~3-0~ubuntu-focal) ... +Setting up docker-ce (5:20.10.17~3-0~ubuntu-focal) ... +Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service. +Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket. +Processing triggers for man-db (2.9.1-1) ... +Processing triggers for systemd (245.4-4ubuntu3.17) ... +Adding user to group 'docker' +... restarted Docker service +Client: Docker Engine - Community + Version: 20.10.17 + API version: 1.41 + Go version: go1.17.11 + Git commit: 100c701 + Built: Mon Jun 6 23:02:57 2022 + OS/Arch: linux/amd64 + Context: default + Experimental: true + +Server: Docker Engine - Community + Engine: + Version: 20.10.17 + API version: 1.41 (minimum version 1.12) + Go version: go1.17.11 + Git commit: a89b842 + Built: Mon Jun 6 23:01:03 2022 + OS/Arch: linux/amd64 + Experimental: false + containerd: + Version: 1.6.6 + GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1 + runc: + Version: 1.1.2 + GitCommit: v1.1.2-0-ga916309 + docker-init: + Version: 0.19.0 + GitCommit: de40ad0 +... Docker CE installation done +Track docker_ce docker_ce_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656514228&event=docker_ce&operation=docker_ce_ok&value=&comment=&tags= +Creating folders for installation +DEBUG_INSTALL= +DEFAULT_IP=192.168.64.23 +OSM_DEVOPS=/usr/share/osm-devops +OSM_DOCKER_WORK_DIR=/etc/osm/docker +INSTALL_K8S_MONITOR= +HOME=/home/ubuntu +Hit:1 https://download.docker.com/linux/ubuntu focal InRelease +Hit:2 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:4 http://security.ubuntu.com/ubuntu focal-security InRelease +Hit:5 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:6 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +apt-transport-https is already the newest version (2.0.9). +0 upgraded, 0 newly installed, 0 to remove and 18 not upgraded. +Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:2 http://security.ubuntu.com/ubuntu focal-security InRelease +Hit:3 https://download.docker.com/linux/ubuntu focal InRelease +Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:6 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +apt-transport-https is already the newest version (2.0.9). +0 upgraded, 0 newly installed, 0 to remove and 18 not upgraded. +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:2 http://security.ubuntu.com/ubuntu focal-security InRelease +Hit:3 https://download.docker.com/linux/ubuntu focal InRelease +Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:6 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Get:7 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [9383 B] +Get:8 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 Packages [57.2 kB] +Fetched 66.6 kB in 1s (50.0 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Hit:1 https://download.docker.com/linux/ubuntu focal InRelease +Hit:2 http://security.ubuntu.com/ubuntu focal-security InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:6 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Hit:7 https://packages.cloud.google.com/apt kubernetes-xenial InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Installing Kubernetes Packages ... +Reading package lists... +Building dependency tree... +Reading state information... +The following additional packages will be installed: + conntrack cri-tools ebtables kubernetes-cni socat +Suggested packages: + nftables +The following NEW packages will be installed: + conntrack cri-tools ebtables kubeadm kubectl kubelet kubernetes-cni socat +0 upgraded, 8 newly installed, 0 to remove and 18 not upgraded. +Need to get 74.7 MB of archives. +After this operation, 324 MB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 conntrack amd64 1:1.4.5-2 [30.3 kB] +Get:2 http://archive.ubuntu.com/ubuntu focal/main amd64 ebtables amd64 2.0.11-3build1 [80.3 kB] +Get:4 http://archive.ubuntu.com/ubuntu focal/main amd64 socat amd64 1.7.3.3-2 [323 kB] +Get:3 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 cri-tools amd64 1.24.2-00 [12.3 MB] +Get:5 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubernetes-cni amd64 0.8.7-00 [25.0 MB] +Get:6 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubelet amd64 1.23.3-00 [19.5 MB] +Get:7 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubectl amd64 1.23.3-00 [8929 kB] +Get:8 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubeadm amd64 1.23.3-00 [8580 kB] +Fetched 74.7 MB in 3s (25.2 MB/s) +Selecting previously unselected package conntrack. +(Reading database ... 65205 files and directories currently installed.) +Preparing to unpack .../0-conntrack_1%3a1.4.5-2_amd64.deb ... +Unpacking conntrack (1:1.4.5-2) ... +Selecting previously unselected package cri-tools. +Preparing to unpack .../1-cri-tools_1.24.2-00_amd64.deb ... +Unpacking cri-tools (1.24.2-00) ... +Selecting previously unselected package ebtables. +Preparing to unpack .../2-ebtables_2.0.11-3build1_amd64.deb ... +Unpacking ebtables (2.0.11-3build1) ... +Selecting previously unselected package kubernetes-cni. +Preparing to unpack .../3-kubernetes-cni_0.8.7-00_amd64.deb ... +Unpacking kubernetes-cni (0.8.7-00) ... +Selecting previously unselected package socat. +Preparing to unpack .../4-socat_1.7.3.3-2_amd64.deb ... +Unpacking socat (1.7.3.3-2) ... +Selecting previously unselected package kubelet. +Preparing to unpack .../5-kubelet_1.23.3-00_amd64.deb ... +Unpacking kubelet (1.23.3-00) ... +Selecting previously unselected package kubectl. +Preparing to unpack .../6-kubectl_1.23.3-00_amd64.deb ... +Unpacking kubectl (1.23.3-00) ... +Selecting previously unselected package kubeadm. +Preparing to unpack .../7-kubeadm_1.23.3-00_amd64.deb ... +Unpacking kubeadm (1.23.3-00) ... +Setting up conntrack (1:1.4.5-2) ... +Setting up kubectl (1.23.3-00) ... +Setting up ebtables (2.0.11-3build1) ... +Setting up socat (1.7.3.3-2) ... +Setting up cri-tools (1.24.2-00) ... +Setting up kubernetes-cni (0.8.7-00) ... +Setting up kubelet (1.23.3-00) ... +Created symlink /etc/systemd/system/multi-user.target.wants/kubelet.service → /lib/systemd/system/kubelet.service. +Setting up kubeadm (1.23.3-00) ... +Processing triggers for man-db (2.9.1-1) ... + KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs" +kubelet set on hold. +kubeadm set on hold. +kubectl set on hold. +Track k8scluster install_k8s_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656514269&event=k8scluster&operation=install_k8s_ok&value=&comment=&tags= +I0629 16:51:09.776257 10096 version.go:255] remote version is much newer: v1.24.2; falling back to: stable-1.23 +[init] Using Kubernetes version: v1.23.8 +[preflight] Running pre-flight checks +[preflight] Pulling images required for setting up a Kubernetes cluster +[preflight] This might take a minute or two, depending on the speed of your internet connection +[preflight] You can also perform this action in beforehand using 'kubeadm config images pull' +[certs] Using certificateDir folder "/etc/kubernetes/pki" +[certs] Generating "ca" certificate and key +[certs] Generating "apiserver" certificate and key +[certs] apiserver serving cert is signed for DNS names [kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local osm11] and IPs [10.96.0.1 192.168.64.23] +[certs] Generating "apiserver-kubelet-client" certificate and key +[certs] Generating "front-proxy-ca" certificate and key +[certs] Generating "front-proxy-client" certificate and key +[certs] Generating "etcd/ca" certificate and key +[certs] Generating "etcd/server" certificate and key +[certs] etcd/server serving cert is signed for DNS names [localhost osm11] and IPs [192.168.64.23 127.0.0.1 ::1] +[certs] Generating "etcd/peer" certificate and key +[certs] etcd/peer serving cert is signed for DNS names [localhost osm11] and IPs [192.168.64.23 127.0.0.1 ::1] +[certs] Generating "etcd/healthcheck-client" certificate and key +[certs] Generating "apiserver-etcd-client" certificate and key +[certs] Generating "sa" key and public key +[kubeconfig] Using kubeconfig folder "/etc/kubernetes" +[kubeconfig] Writing "admin.conf" kubeconfig file +[kubeconfig] Writing "kubelet.conf" kubeconfig file +[kubeconfig] Writing "controller-manager.conf" kubeconfig file +[kubeconfig] Writing "scheduler.conf" kubeconfig file +[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env" +[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml" +[kubelet-start] Starting the kubelet +[control-plane] Using manifest folder "/etc/kubernetes/manifests" +[control-plane] Creating static Pod manifest for "kube-apiserver" +[control-plane] Creating static Pod manifest for "kube-controller-manager" +[control-plane] Creating static Pod manifest for "kube-scheduler" +[etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests" +[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s +[apiclient] All control plane components are healthy after 18.551122 seconds +[upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace +[kubelet] Creating a ConfigMap "kubelet-config-1.23" in namespace kube-system with the configuration for the kubelets in the cluster +NOTE: The "kubelet-config-1.23" naming of the kubelet ConfigMap is deprecated. Once the UnversionedKubeletConfigMap feature gate graduates to Beta the default name will become just "kubelet-config". Kubeadm upgrade will handle this transition transparently. +[upload-certs] Skipping phase. Please see --upload-certs +[mark-control-plane] Marking the node osm11 as control-plane by adding the labels: [node-role.kubernetes.io/master(deprecated) node-role.kubernetes.io/control-plane node.kubernetes.io/exclude-from-external-load-balancers] +[mark-control-plane] Marking the node osm11 as control-plane by adding the taints [node-role.kubernetes.io/master:NoSchedule] +[bootstrap-token] Using token: d2rz8j.istr2iz8tw0cgsnl +[bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles +[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to get nodes +[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials +[bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token +[bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster +[bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace +[kubelet-finalize] Updating "/etc/kubernetes/kubelet.conf" to point to a rotatable kubelet client certificate and key +[addons] Applied essential addon: CoreDNS +[addons] Applied essential addon: kube-proxy + +Your Kubernetes control-plane has initialized successfully! + +To start using your cluster, you need to run the following as a regular user: + + mkdir -p $HOME/.kube + sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config + +Alternatively, if you are the root user, you can run: + + export KUBECONFIG=/etc/kubernetes/admin.conf + +You should now deploy a pod network to the cluster. +Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: + https://kubernetes.io/docs/concepts/cluster-administration/addons/ + +Then you can join any number of worker nodes by running the following on each as root: + +kubeadm join 192.168.64.23:6443 --token d2rz8j.istr2iz8tw0cgsnl \ + --discovery-token-ca-cert-hash sha256:49c0f16049c97cc76debdf07bfd3226fec7dae52f45a3a37a2dad24f2b07fca9 +Track k8scluster init_k8s_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656514349&event=k8scluster&operation=init_k8s_ok&value=&comment=&tags= +Error from server (NotFound): namespaces "osm" not found +--2022-06-29 16:52:29-- https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml +Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ... +Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected. +HTTP request sent, awaiting response... 200 OK +Length: 5750 (5.6K) [text/plain] +Saving to: ‘/tmp/flannel.56U8m6/kube-flannel.yml’ + + 0K ..... 100% 30.6M=0s + +2022-06-29 16:52:42 (30.6 MB/s) - ‘/tmp/flannel.56U8m6/kube-flannel.yml’ saved [5750/5750] + +Warning: policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+ +podsecuritypolicy.policy/psp.flannel.unprivileged created +clusterrole.rbac.authorization.k8s.io/flannel created +clusterrolebinding.rbac.authorization.k8s.io/flannel created +serviceaccount/flannel created +configmap/kube-flannel-cfg created +daemonset.apps/kube-flannel-ds created +node/osm11 untainted +Helm3 is not installed, installing ... + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed +100 13.2M 100 13.2M 0 0 31.1M 0 --:--:-- --:--:-- --:--:-- 31.1M +linux-amd64/ +linux-amd64/helm +linux-amd64/LICENSE +linux-amd64/README.md +"stable" has been added to your repositories +Hang tight while we grab the latest from your chart repositories... +...Successfully got an update from the "stable" chart repository +Update Complete. ⎈Happy Helming!⎈ +Track k8scluster install_helm_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656514382&event=k8scluster&operation=install_helm_ok&value=&comment=&tags= +Installing open-iscsi +Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:2 https://download.docker.com/linux/ubuntu focal InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Hit:7 http://security.ubuntu.com/ubuntu focal-security InRelease +Hit:6 https://packages.cloud.google.com/apt kubernetes-xenial InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +open-iscsi is already the newest version (2.0.874-7.1ubuntu6.2). +open-iscsi set to manually installed. +0 upgraded, 0 newly installed, 0 to remove and 21 not upgraded. +Synchronizing state of iscsid.service with SysV service script with /lib/systemd/systemd-sysv-install. +Executing: /lib/systemd/systemd-sysv-install enable iscsid +Created symlink /etc/systemd/system/sysinit.target.wants/iscsid.service → /lib/systemd/system/iscsid.service. +Installing OpenEBS +"openebs" has been added to your repositories +Hang tight while we grab the latest from your chart repositories... +...Successfully got an update from the "openebs" chart repository +...Successfully got an update from the "stable" chart repository +Update Complete. ⎈Happy Helming!⎈ +NAME: openebs +LAST DEPLOYED: Wed Jun 29 16:53:24 2022 +NAMESPACE: openebs +STATUS: deployed +REVISION: 1 +TEST SUITE: None +NOTES: +Successfully installed OpenEBS. + +Check the status by running: kubectl get pods -n openebs + +The default values will install NDM and enable OpenEBS hostpath and device +storage engines along with their default StorageClasses. Use `kubectl get sc` +to see the list of installed OpenEBS StorageClasses. + +**Note**: If you are upgrading from the older helm chart that was using cStor +and Jiva (non-csi) volumes, you will have to run the following command to include +the older provisioners: + +helm upgrade openebs openebs/openebs \ + --namespace openebs \ + --set legacy.enabled=true \ + --reuse-values + +For other engines, you will need to perform a few more additional steps to +enable the engine, configure the engines (e.g. creating pools) and create +StorageClasses. + +For example, cStor can be enabled using commands like: + +helm upgrade openebs openebs/openebs \ + --namespace openebs \ + --set cstor.enabled=true \ + --reuse-values + +For more information, +- view the online documentation at https://openebs.io/docs or +- connect with an active community on Kubernetes slack #openebs channel. +NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION +openebs openebs 1 2022-06-29 16:53:24.471803904 +0200 CEST deployed openebs-3.1.0 3.1.0 +Waiting for storageclass +Storageclass available +storageclass.storage.k8s.io/openebs-hostpath patched +Track k8scluster k8s_storageclass_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656514408&event=k8scluster&operation=k8s_storageclass_ok&value=&comment=&tags= +Installing MetalLB +configInline: + address-pools: + - name: default + protocol: layer2 + addresses: + - 192.168.64.23/32 +"metallb" has been added to your repositories +Hang tight while we grab the latest from your chart repositories... +...Successfully got an update from the "metallb" chart repository +...Successfully got an update from the "openebs" chart repository +...Successfully got an update from the "stable" chart repository +Update Complete. ⎈Happy Helming!⎈ +W0629 16:53:37.852952 13892 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+ +W0629 16:53:37.863932 13892 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+ +W0629 16:53:38.117988 13892 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+ +W0629 16:53:38.120086 13892 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+ +NAME: metallb +LAST DEPLOYED: Wed Jun 29 16:53:35 2022 +NAMESPACE: metallb-system +STATUS: deployed +REVISION: 1 +TEST SUITE: None +NOTES: +MetalLB is now running in the cluster. +LoadBalancer Services in your cluster are now available on the IPs you +defined in MetalLB's configuration: + +config: + address-pools: + - addresses: + - 192.168.64.23/32 + name: default + protocol: layer2 + +To see IP assignments, try `kubectl get services`. +Track k8scluster k8s_metallb_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656514418&event=k8scluster&operation=k8s_metallb_ok&value=&comment=&tags= + +Bootstraping... 1 checks of 100 +OpenEBS: Waiting for 3 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-4xjpm 0/1 +openebs-ndm-7dzc5 0/1 +openebs-ndm-operator-687cf9466c-ffqb7 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 2 checks of 100 +OpenEBS: Waiting for 3 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-4xjpm 0/1 +openebs-ndm-7dzc5 0/1 +openebs-ndm-operator-687cf9466c-ffqb7 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 3 checks of 100 +OpenEBS: Waiting for 3 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-4xjpm 0/1 +openebs-ndm-7dzc5 0/1 +openebs-ndm-operator-687cf9466c-ffqb7 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 4 checks of 100 +OpenEBS: Waiting for 3 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-4xjpm 0/1 +openebs-ndm-7dzc5 0/1 +openebs-ndm-operator-687cf9466c-ffqb7 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 5 checks of 100 +OpenEBS: Waiting for 2 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-4xjpm 0/1 +openebs-ndm-operator-687cf9466c-ffqb7 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 6 checks of 100 +OpenEBS: Waiting for 2 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-4xjpm 0/1 +openebs-ndm-operator-687cf9466c-ffqb7 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 7 checks of 100 +OpenEBS: Waiting for 2 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-4xjpm 0/1 +openebs-ndm-operator-687cf9466c-ffqb7 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 8 checks of 100 +OpenEBS: Waiting for 2 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-4xjpm 0/1 +openebs-ndm-operator-687cf9466c-ffqb7 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 9 checks of 100 +OpenEBS: Waiting for 1 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-4xjpm 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 10 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 11 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 12 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 13 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 14 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 15 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 16 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 17 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 18 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 19 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 20 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + + +Bootstraping... 21 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-c55c89d-mrpht 0/1 +metallb-speaker-czbtn 0/1 + +===> Successful checks: 10/10 +K8S CLUSTER IS READY +Track k8scluster k8s_ready_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656514493&event=k8scluster&operation=k8s_ready_ok&value=&comment=&tags= +Track k8scluster k8scluster_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656514494&event=k8scluster&operation=k8scluster_ok&value=&comment=&tags= +DEBUG_INSTALL= +DEFAULT_IP=192.168.64.23 +OSM_DEVOPS=/usr/share/osm-devops +HOME=/home/ubuntu +Installing juju +juju (2.9/stable) 2.9.32 from Canonical** installed +Finished installation of juju +Track juju juju_install_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656514895&event=juju&operation=juju_install_ok&value=&comment=&tags= +Since Juju 2 is being run for the first time, it has downloaded the latest public cloud information. + +k8s substrate added as cloud "k8scloud" with storage provisioned +by the existing "openebs-hostpath" storage class. +You can now bootstrap to this cloud by running 'juju bootstrap k8scloud'. +17:01:40 INFO juju.cmd supercommand.go:56 running juju [2.9.32 917a8f1033561ce28a73ff81d71da75aec6e0785 gc go1.18.3] +17:01:40 DEBUG juju.cmd supercommand.go:57 args: []string{"/snap/juju/19681/bin/juju", "bootstrap", "-v", "--debug", "k8scloud", "osm", "--config", "controller-service-type=loadbalancer", "--agent-version=2.9.29"} +17:01:40 DEBUG juju.cmd.juju.commands bootstrap.go:1307 authenticating with region "" and credential "k8scloud" () +17:01:40 DEBUG juju.cmd.juju.commands bootstrap.go:1455 provider attrs: map[operator-storage: workload-storage:] +17:01:41 INFO cmd authkeys.go:114 Adding contents of "/home/ubuntu/.local/share/juju/ssh/juju_id_rsa.pub" to authorized-keys +17:01:41 DEBUG juju.cmd.juju.commands bootstrap.go:1530 preparing controller with config: map[agent-metadata-url: agent-stream:released apt-ftp-proxy: apt-http-proxy: apt-https-proxy: apt-mirror: apt-no-proxy: authorized-keys:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDzgJ4FXAKQAbe2yzd3Tg31wSmxU9RNM75WymY8T89vm01Ms4JtJEEcgJ+aGNisdxPEWK8OFQQ1ovfjGiN8GvZSoHuqR7QvHeKtN4jKhP8yoNEYgDecVXK93HyEky9t0TY+XT42crEHVqCtDWfSKd4ZqwHrVmgnTYJEJ+8tjO9jJGTvbtoD+FxQRg5B3SHm+u0mhtnaLnOrlBIgxCMWBDK7Zsv1ESNKt2WUSAWfDpfbMhYKAUab6HreXvsBq9dNGmXd1nSan+9HW/auziPoL42mT6PTZSAgWQsd2SpowmeLsSDw7mpmgZkLUSBtNB5WEufdfoECTpw3amt1rAHAJKDb juju-client-key + automatically-retry-hooks:true backup-dir: charmhub-url:https://api.charmhub.io cloudinit-userdata: container-image-metadata-url: container-image-stream:released container-inherit-properties: container-networking-method: default-series:focal default-space: development:false disable-network-management:false disable-telemetry:false egress-subnets: enable-os-refresh-update:true enable-os-upgrade:true fan-config: firewall-mode:instance ftp-proxy: http-proxy: https-proxy: ignore-machine-addresses:false image-metadata-url: image-stream:released juju-ftp-proxy: juju-http-proxy: juju-https-proxy: juju-no-proxy:127.0.0.1,localhost,::1 logforward-enabled:false logging-config: logging-output: lxd-snap-channel:latest/stable max-action-results-age:336h max-action-results-size:5G max-status-history-age:336h max-status-history-size:5G name:controller net-bond-reconfigure-delay:17 no-proxy:127.0.0.1,localhost,::1 num-container-provision-workers:4 num-provision-workers:16 operator-storage:openebs-hostpath provisioner-harvest-mode:destroyed proxy-ssh:false resource-tags: snap-http-proxy: snap-https-proxy: snap-store-assertions: snap-store-proxy: snap-store-proxy-url: ssl-hostname-verification:true test-mode:false transmit-vendor-metrics:true type:kubernetes update-status-hook-interval:5m uuid:caca7a31-d59f-405c-844f-ef84e708f3b5 workload-storage:openebs-hostpath] +17:01:41 DEBUG juju.kubernetes.provider provider.go:140 opening model "controller". +17:01:41 INFO cmd bootstrap.go:855 Creating Juju controller "osm" on k8scloud +17:01:41 INFO juju.cmd.juju.commands bootstrap.go:921 combined bootstrap constraints: +17:01:41 INFO cmd bootstrap.go:969 Bootstrap to generic Kubernetes cluster +17:01:42 DEBUG juju.environs.simplestreams simplestreams.go:423 searching for signed metadata in datasource "gui simplestreams" +17:01:42 DEBUG juju.environs.simplestreams simplestreams.go:458 looking for data index using path streams/v1/index2.sjson +17:01:42 DEBUG juju.environs.simplestreams simplestreams.go:470 looking for data index using URL https://streams.canonical.com/juju/gui/streams/v1/index2.sjson +17:01:42 DEBUG juju.environs.simplestreams simplestreams.go:473 streams/v1/index2.sjson not accessed, actual error: [{/build/snapcraft-juju-a284566302ade03f36071a6fe755224b/parts/juju/src/environs/simplestreams/datasource.go:192: "https://streams.canonical.com/juju/gui/streams/v1/index2.sjson" not found}] +17:01:42 DEBUG juju.environs.simplestreams simplestreams.go:474 streams/v1/index2.sjson not accessed, trying legacy index path: streams/v1/index.sjson +17:01:42 DEBUG juju.environs.simplestreams simplestreams.go:493 read metadata index at "https://streams.canonical.com/juju/gui/streams/v1/index.sjson" +17:01:42 DEBUG juju.environs.simplestreams simplestreams.go:1025 finding products at path "streams/v1/com.canonical.streams-released-dashboard.sjson" +17:01:42 INFO cmd bootstrap.go:864 Fetching Juju Dashboard 0.8.1 +17:01:42 DEBUG juju.kubernetes.provider k8s.go:470 controller pod config: +&{Tags:map[] Bootstrap:0xc000365880 DisableSSLHostnameVerification:false ProxySettings:{Http: Https: Ftp: NoProxy:127.0.0.1,localhost,::1 AutoNoProxy:} Controller:map[agent-logfile-max-backups:2 agent-logfile-max-size:100M api-port:17070 api-port-open-delay:2s audit-log-capture-args:false audit-log-exclude-methods:[ReadOnlyMethods] audit-log-max-backups:10 audit-log-max-size:300M auditing-enabled:true batch-raft-fsm:false ca-cert:-----BEGIN CERTIFICATE----- +MIIEEzCCAnugAwIBAgIVAKUNNMoHI67FvYlpb18lbyE1BJyDMA0GCSqGSIb3DQEB +CwUAMCExDTALBgNVBAoTBEp1anUxEDAOBgNVBAMTB2p1anUtY2EwHhcNMjIwNjI5 +MTQ1NjQxWhcNMzIwNjI5MTUwMTQxWjAhMQ0wCwYDVQQKEwRKdWp1MRAwDgYDVQQD +EwdqdWp1LWNhMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA5A/tDo09 +9QCo/xEo3d41Rq0sHP/7OR8Qaynfo7/95+S/roFiOf99vENd3l/eA82K9glR/Td0 +bFEm2l/SwX63fan/Y7PVxSXr5d/G0nhDORfQSzn61fLJwli1vDHFGordIKBPWBhX +vTdfETqiTZGT4IaXjT4+aKfAyWPhI8KDAmacuJ80aANO/7jML7wTgdq0aSfQKfmK +OGJqngi2vxifHrNpCfMBRl9/L5Mbuw9ytXsBhSrPBINrk81hq2bAHVj7NvfPfPue +a2UBb788kMP+xonGhN+8pUZooA3HFMp3JCVd9jbNDh/M3u2tRZbrFMsER3xV+Aqg +i6I3y8xLFNSb11hPbme3YpuoSyH/+ZDCojTcXhmU6ufpyAACWeCMgVBsFJK76CC6 +vdNAsL1ueVKB3DWlyh4phoWmMPb0vJUIuG3h1QDM2bmSD6JTPbA0SrApJpiqMbPy +zA9Fgfla2R1R35+r8EMNVpdVLG3dS29tx5S07E2Xu1ZrHhaNMd76VjBHAgMBAAGj +QjBAMA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSY +5jTQ56RTXNqF89m4Q8R2hSfzUTANBgkqhkiG9w0BAQsFAAOCAYEA3iS5qNRamawK +p5wLPxJ9wQdkSozjQGqlvzuDrujDgt3RZ1Kiu1neCTLczLwINMbahfZ79NQoamqJ +3juk+GPorrgDJ3N3xdXhm23O3zPMH6owH2pHc8ev0+RkqLyNgnFav3NKRK53A7Zf +nGM0g39aTTAv6SBuVGFowXfM7LR/eS8WUyvQFTbqHlmpRVYKCW7Yo2FDxvRa9eC+ +LlRuwt1oTJ1PwjQIhbiE+5tfB944z8sfXjLSWlWuqnTpi9O2nL3ERVblp5kC8uAT +SSyEygDOxtI4eNChKkwkNsNFRCyOCNVHv/oBW/LpwplbGZbuht8M1ygBR19bGIVK +XSkZMKTIrrw6V6JJ+RsPOxWM2ehtKGt3pLIH1XjVprxNB1zwGvG0VDLkmAlD63bP +94mRhrs3vWDimIkIPZPKinvuimPstlujq4soQqkwc+LBiHKC8V0sBde2grdu4aEJ +dWiB6Qfc6rfRqzWY8EaeWlg/G7D5qscwc/RlEHO/3TS7ob+PEAFh +-----END CERTIFICATE----- + charmstore-url:https://api.jujucharms.com/charmstore controller-name:osm controller-uuid:15f06f99-4843-41ca-8bef-04a4af311293 juju-db-snap-channel:4.4/stable max-agent-state-size:524288 max-charm-state-size:2097152 max-debug-log-duration:24h0m0s max-prune-txn-batch-size:1000000 max-prune-txn-passes:100 max-txn-log-size:10M metering-url:https://api.jujucharms.com/omnibus/v3 migration-agent-wait-time:15m model-logfile-max-backups:2 model-logfile-max-size:10M model-logs-size:20M mongo-memory-profile:default non-synced-writes-to-raft-log:false prune-txn-query-count:1000 prune-txn-sleep-time:10ms set-numa-control-policy:false state-port:37017] APIInfo:0xc000211740 ControllerTag:controller-15f06f99-4843-41ca-8bef-04a4af311293 ControllerName:osm JujuVersion:2.9.29 DataDir:/var/lib/juju LogDir:/var/log/juju MetricsSpoolDir:/var/lib/juju/metricspool ControllerId:0 AgentEnvironment:map[PROVIDER_TYPE:kubernetes]} +17:01:42 INFO cmd bootstrap.go:394 Creating k8s resources for controller "controller-osm" +17:01:42 DEBUG juju.kubernetes.provider bootstrap.go:627 creating controller service: +&Service{ObjectMeta:{controller-service controller-osm 0 0001-01-01 00:00:00 +0000 UTC map[app.kubernetes.io/managed-by:juju app.kubernetes.io/name:controller] map[controller.juju.is/id:15f06f99-4843-41ca-8bef-04a4af311293] [] [] []},Spec:ServiceSpec{Ports:[]ServicePort{ServicePort{Name:api-server,Protocol:,Port:17070,TargetPort:{0 17070 },NodePort:0,AppProtocol:nil,},},Selector:map[string]string{app.kubernetes.io/name: controller,},ClusterIP:,Type:LoadBalancer,ExternalIPs:[],SessionAffinity:,LoadBalancerIP:,LoadBalancerSourceRanges:[],ExternalName:,ExternalTrafficPolicy:,HealthCheckNodePort:0,PublishNotReadyAddresses:false,SessionAffinityConfig:nil,IPFamilyPolicy:nil,ClusterIPs:[],IPFamilies:[],AllocateLoadBalancerNodePorts:nil,LoadBalancerClass:nil,InternalTrafficPolicy:nil,},Status:ServiceStatus{LoadBalancer:LoadBalancerStatus{Ingress:[]LoadBalancerIngress{},},Conditions:[]Condition{},},} +17:01:43 DEBUG juju.kubernetes.provider bootstrap.go:660 polling k8s controller svc DNS, in 1 attempt, controller service address not provisioned +17:01:46 DEBUG juju.kubernetes.provider configmap.go:84 updating configmap "controller-configmap" +17:01:47 DEBUG juju.kubernetes.provider configmap.go:84 updating configmap "controller-configmap" +17:01:47 DEBUG juju.kubernetes.provider bootstrap.go:1207 mongodb container args: +printf 'args="--dbpath=/var/lib/juju/db --sslPEMKeyFile=/var/lib/juju/server.pem --sslPEMKeyPassword=ignored --sslMode=requireSSL --port=37017 --journal --replSet=juju --quiet --oplogSize=1024 --auth --keyFile=/var/lib/juju/shared-secret --storageEngine=wiredTiger --bind_ip_all"\nipv6Disabled=$(sysctl net.ipv6.conf.all.disable_ipv6 -n)\nif [ $ipv6Disabled -eq 0 ]; then\n args="${args} --ipv6"\nfi\n$(mongod ${args})\n'>/root/mongo.sh && chmod a+x /root/mongo.sh && /root/mongo.sh +17:01:47 DEBUG juju.kubernetes.provider k8s.go:2252 selecting units "app.kubernetes.io/name=controller" to watch +17:01:48 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:114 fire notify watcher for controller-0 +17:01:48 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:114 fire notify watcher for controller +17:02:00 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:114 fire notify watcher for controller +17:02:00 DEBUG juju.kubernetes.provider bootstrap.go:957 Successfully assigned controller-osm/controller-0 to osm11 +17:02:00 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:114 fire notify watcher for controller-0 +17:02:02 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:114 fire notify watcher for controller-0 +17:02:02 DEBUG juju.kubernetes.provider bootstrap.go:957 Downloading images +17:02:02 INFO cmd bootstrap.go:959 Downloading images +17:02:18 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:114 fire notify watcher for controller-0 +17:02:19 DEBUG juju.kubernetes.provider bootstrap.go:957 Pulled images +17:02:20 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:114 fire notify watcher for controller-0 +17:02:20 DEBUG juju.kubernetes.provider bootstrap.go:957 Created container mongodb +17:02:20 DEBUG juju.kubernetes.provider bootstrap.go:957 Started mongodb container +17:02:52 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:114 fire notify watcher for controller-0 +17:02:55 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:114 fire notify watcher for controller-0 +17:02:55 DEBUG juju.kubernetes.provider bootstrap.go:957 Created container api-server +17:02:55 DEBUG juju.kubernetes.provider bootstrap.go:957 Started controller container +17:02:56 DEBUG juju.kubernetes.provider.watcher k8swatcher.go:114 fire notify watcher for controller +17:02:57 INFO cmd bootstrap.go:1045 Starting controller pod +17:02:57 INFO cmd bootstrap.go:708 Bootstrap agent now started +17:02:57 INFO juju.juju api.go:330 API endpoints changed from [] to [192.168.64.23:17070] +17:02:57 INFO cmd controller.go:88 Contacting Juju controller at 192.168.64.23 to verify accessibility... +17:02:57 INFO juju.juju api.go:78 connecting to API addresses: [192.168.64.23:17070] +17:03:02 INFO cmd controller.go:141 Still waiting for API to become available: unable to connect to API: dial tcp 192.168.64.23:17070: connect: connection refused +17:03:05 INFO juju.juju api.go:78 connecting to API addresses: [192.168.64.23:17070] +17:03:10 INFO cmd controller.go:141 Still waiting for API to become available: unable to connect to API: dial tcp 192.168.64.23:17070: connect: connection refused +17:03:13 INFO juju.juju api.go:78 connecting to API addresses: [192.168.64.23:17070] +17:03:13 DEBUG juju.api apiclient.go:1153 successfully dialed "wss://192.168.64.23:17070/model/caca7a31-d59f-405c-844f-ef84e708f3b5/api" +17:03:13 INFO juju.api apiclient.go:688 connection established to "wss://192.168.64.23:17070/model/caca7a31-d59f-405c-844f-ef84e708f3b5/api" +17:03:13 DEBUG juju.api monitor.go:35 RPC connection died +17:03:13 INFO cmd controller.go:108 +Bootstrap complete, controller "osm" is now available in namespace "controller-osm" +17:03:13 INFO cmd bootstrap.go:596 +Now you can run + juju add-model +to create a new model to deploy k8s workloads. +17:03:13 INFO cmd supercommand.go:544 command finished +Generating a RSA private key +..........................+++++ +...........................................+++++ +writing new private key to '/tmp/.osm/client.key' +----- +Cloud "lxd-cloud" added to controller "osm". +WARNING loading credentials: credentials for cloud lxd-cloud not found +To upload a credential to the controller for cloud "lxd-cloud", use +* 'add-model' with --credential option or +* 'add-credential -c lxd-cloud'. +Using cloud "lxd-cloud" from the controller to verify credentials. +Controller credential "lxd-cloud" for user "admin" for cloud "lxd-cloud" on controller "osm" added. +For more information, see ‘juju show-credential lxd-cloud lxd-cloud’. + +Checking required packages: iptables-persistent + Not installed. +Installing iptables-persistent requires root privileges +Reading package lists... +Building dependency tree... +Reading state information... +The following additional packages will be installed: + netfilter-persistent +The following NEW packages will be installed: + iptables-persistent netfilter-persistent +0 upgraded, 2 newly installed, 0 to remove and 21 not upgraded. +Need to get 13.8 kB of archives. +After this operation, 89.1 kB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 netfilter-persistent all 1.0.14ubuntu1 [7268 B] +Get:2 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 iptables-persistent all 1.0.14ubuntu1 [6552 B] +Preconfiguring packages ... +Fetched 13.8 kB in 0s (38.8 kB/s) +Selecting previously unselected package netfilter-persistent. +(Reading database ... 65298 files and directories currently installed.) +Preparing to unpack .../netfilter-persistent_1.0.14ubuntu1_all.deb ... +Unpacking netfilter-persistent (1.0.14ubuntu1) ... +Selecting previously unselected package iptables-persistent. +Preparing to unpack .../iptables-persistent_1.0.14ubuntu1_all.deb ... +Unpacking iptables-persistent (1.0.14ubuntu1) ... +Setting up netfilter-persistent (1.0.14ubuntu1) ... +Created symlink /etc/systemd/system/multi-user.target.wants/netfilter-persistent.service → /lib/systemd/system/netfilter-persistent.service. +Setting up iptables-persistent (1.0.14ubuntu1) ... +update-alternatives: using /lib/systemd/system/netfilter-persistent.service to provide /lib/systemd/system/iptables.service (iptables.service) in auto mode +Processing triggers for man-db (2.9.1-1) ... +Processing triggers for systemd (245.4-4ubuntu3.17) ... +iptables v1.8.4 (legacy): option "--to-destination" requires an argument +Try `iptables -h' or 'iptables --help' for more information. +iptables v1.8.4 (legacy): option "--to-destination" requires an argument +Try `iptables -h' or 'iptables --help' for more information. +run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables save +run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables save +Track juju juju_controller_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656515019&event=juju&operation=juju_controller_ok&value=&comment=&tags= +Track juju juju_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656515021&event=juju&operation=juju_ok&value=&comment=&tags= +Pulling and generating docker images +Pulling docker images +Using default tag: latest +latest: Pulling from wurstmeister/zookeeper +a3ed95caeb02: Pulling fs layer +ef38b711a50f: Pulling fs layer +e057c74597c7: Pulling fs layer +666c214f6385: Pulling fs layer +c3d6a96f1ffc: Pulling fs layer +3fe26a83e0ca: Pulling fs layer +3d3a7dd3a3b1: Pulling fs layer +f8cc938abe5f: Pulling fs layer +9978b75f7a58: Pulling fs layer +4d4dbcc8f8cc: Pulling fs layer +8b130a9baa49: Pulling fs layer +6b9611650a73: Pulling fs layer +5df5aac51927: Pulling fs layer +76eea4448d9b: Pulling fs layer +8b66990876c6: Pulling fs layer +f0dd38204b6f: Pulling fs layer +666c214f6385: Waiting +c3d6a96f1ffc: Waiting +3fe26a83e0ca: Waiting +3d3a7dd3a3b1: Waiting +f8cc938abe5f: Waiting +9978b75f7a58: Waiting +4d4dbcc8f8cc: Waiting +8b130a9baa49: Waiting +6b9611650a73: Waiting +5df5aac51927: Waiting +76eea4448d9b: Waiting +8b66990876c6: Waiting +f0dd38204b6f: Waiting +a3ed95caeb02: Download complete +e057c74597c7: Verifying Checksum +e057c74597c7: Download complete +a3ed95caeb02: Pull complete +666c214f6385: Verifying Checksum +666c214f6385: Download complete +c3d6a96f1ffc: Verifying Checksum +c3d6a96f1ffc: Download complete +3fe26a83e0ca: Verifying Checksum +3fe26a83e0ca: Download complete +f8cc938abe5f: Verifying Checksum +f8cc938abe5f: Download complete +9978b75f7a58: Verifying Checksum +9978b75f7a58: Download complete +4d4dbcc8f8cc: Verifying Checksum +4d4dbcc8f8cc: Download complete +ef38b711a50f: Verifying Checksum +ef38b711a50f: Download complete +6b9611650a73: Verifying Checksum +6b9611650a73: Download complete +8b130a9baa49: Verifying Checksum +8b130a9baa49: Download complete +76eea4448d9b: Verifying Checksum +76eea4448d9b: Download complete +5df5aac51927: Verifying Checksum +5df5aac51927: Download complete +8b66990876c6: Download complete +f0dd38204b6f: Verifying Checksum +f0dd38204b6f: Download complete +3d3a7dd3a3b1: Verifying Checksum +3d3a7dd3a3b1: Download complete +ef38b711a50f: Pull complete +e057c74597c7: Pull complete +666c214f6385: Pull complete +c3d6a96f1ffc: Pull complete +3fe26a83e0ca: Pull complete +3d3a7dd3a3b1: Pull complete +f8cc938abe5f: Pull complete +9978b75f7a58: Pull complete +4d4dbcc8f8cc: Pull complete +8b130a9baa49: Pull complete +6b9611650a73: Pull complete +5df5aac51927: Pull complete +76eea4448d9b: Pull complete +8b66990876c6: Pull complete +f0dd38204b6f: Pull complete +Digest: sha256:7a7fd44a72104bfbd24a77844bad5fabc86485b036f988ea927d1780782a6680 +Status: Downloaded newer image for wurstmeister/zookeeper:latest +docker.io/wurstmeister/zookeeper:latest +2.11-1.0.2: Pulling from wurstmeister/kafka +540db60ca938: Pulling fs layer +f0698009749d: Pulling fs layer +6f908e2198d8: Pulling fs layer +03d1b1f23ba0: Pulling fs layer +7e646c44bafc: Pulling fs layer +7e646c44bafc: Waiting +6f908e2198d8: Verifying Checksum +6f908e2198d8: Download complete +540db60ca938: Verifying Checksum +540db60ca938: Download complete +7e646c44bafc: Verifying Checksum +7e646c44bafc: Download complete +540db60ca938: Pull complete +f0698009749d: Verifying Checksum +f0698009749d: Download complete +03d1b1f23ba0: Verifying Checksum +03d1b1f23ba0: Download complete +f0698009749d: Pull complete +6f908e2198d8: Pull complete +03d1b1f23ba0: Pull complete +7e646c44bafc: Pull complete +Digest: sha256:ec1098369b4ccea77489b233172789c8ac29b545b9243545386549c52d07785b +Status: Downloaded newer image for wurstmeister/kafka:2.11-1.0.2 +docker.io/wurstmeister/kafka:2.11-1.0.2 +v2.4.3: Pulling from prom/prometheus +8c5a7da1afbc: Pulling fs layer +cab0dd93492f: Pulling fs layer +21399993eeff: Pulling fs layer +50fe4c0f18ae: Pulling fs layer +bab8b4ed1fef: Pulling fs layer +5bd3aaf93e52: Pulling fs layer +ccb08d41de26: Pulling fs layer +51047cce385d: Pulling fs layer +51c32e598e5c: Pulling fs layer +50fe4c0f18ae: Waiting +bab8b4ed1fef: Waiting +5bd3aaf93e52: Waiting +ccb08d41de26: Waiting +51047cce385d: Waiting +51c32e598e5c: Waiting +8c5a7da1afbc: Verifying Checksum +8c5a7da1afbc: Download complete +cab0dd93492f: Verifying Checksum +cab0dd93492f: Download complete +8c5a7da1afbc: Pull complete +bab8b4ed1fef: Verifying Checksum +bab8b4ed1fef: Download complete +21399993eeff: Verifying Checksum +21399993eeff: Download complete +50fe4c0f18ae: Verifying Checksum +50fe4c0f18ae: Download complete +5bd3aaf93e52: Download complete +ccb08d41de26: Verifying Checksum +ccb08d41de26: Download complete +cab0dd93492f: Pull complete +51047cce385d: Download complete +51c32e598e5c: Verifying Checksum +51c32e598e5c: Download complete +21399993eeff: Pull complete +50fe4c0f18ae: Pull complete +bab8b4ed1fef: Pull complete +5bd3aaf93e52: Pull complete +ccb08d41de26: Pull complete +51047cce385d: Pull complete +51c32e598e5c: Pull complete +Digest: sha256:2d79525389d68a309db843c1888f364823afbbef32ffea4741024d2ab9994dd6 +Status: Downloaded newer image for prom/prometheus:v2.4.3 +docker.io/prom/prometheus:v2.4.3 +latest: Pulling from google/cadvisor +ff3a5c916c92: Pulling fs layer +44a45bb65cdf: Pulling fs layer +0bbe1a2fe2a6: Pulling fs layer +ff3a5c916c92: Download complete +44a45bb65cdf: Verifying Checksum +44a45bb65cdf: Download complete +0bbe1a2fe2a6: Verifying Checksum +0bbe1a2fe2a6: Download complete +ff3a5c916c92: Pull complete +44a45bb65cdf: Pull complete +0bbe1a2fe2a6: Pull complete +Digest: sha256:815386ebbe9a3490f38785ab11bda34ec8dacf4634af77b8912832d4f85dca04 +Status: Downloaded newer image for google/cadvisor:latest +docker.io/google/cadvisor:latest +latest: Pulling from grafana/grafana +df9b9388f04a: Pulling fs layer +484d0388b206: Pulling fs layer +276fa003c54d: Pulling fs layer +bcdfa28a7179: Pulling fs layer +1025160bed9b: Pulling fs layer +c459cd126d0c: Pulling fs layer +8ff228114e1e: Pulling fs layer +9c8142accf14: Pulling fs layer +582e6642725d: Pulling fs layer +bcdfa28a7179: Waiting +1025160bed9b: Waiting +c459cd126d0c: Waiting +8ff228114e1e: Waiting +9c8142accf14: Waiting +582e6642725d: Waiting +484d0388b206: Verifying Checksum +484d0388b206: Download complete +276fa003c54d: Verifying Checksum +276fa003c54d: Download complete +df9b9388f04a: Verifying Checksum +bcdfa28a7179: Verifying Checksum +bcdfa28a7179: Download complete +df9b9388f04a: Pull complete +1025160bed9b: Verifying Checksum +1025160bed9b: Download complete +484d0388b206: Pull complete +8ff228114e1e: Verifying Checksum +8ff228114e1e: Download complete +9c8142accf14: Verifying Checksum +9c8142accf14: Download complete +582e6642725d: Verifying Checksum +582e6642725d: Download complete +276fa003c54d: Pull complete +bcdfa28a7179: Pull complete +c459cd126d0c: Verifying Checksum +c459cd126d0c: Download complete +1025160bed9b: Pull complete +c459cd126d0c: Pull complete +8ff228114e1e: Pull complete +9c8142accf14: Pull complete +582e6642725d: Pull complete +Digest: sha256:49f5db3e80621196cb1d40bca90d51dc8f521734231ad5fa99e8561525df5ea9 +Status: Downloaded newer image for grafana/grafana:latest +docker.io/grafana/grafana:latest +10: Pulling from library/mariadb +405f018f9d1d: Pulling fs layer +7a85079b8234: Pulling fs layer +579c7ff691b1: Pulling fs layer +4976663b5d6d: Pulling fs layer +169024b1fb13: Pulling fs layer +c0ffe8ce897f: Pulling fs layer +b583c09d23c3: Pulling fs layer +9b9f0c08d08f: Pulling fs layer +9cd51f984586: Pulling fs layer +d9f506bb8aca: Pulling fs layer +24d689f79ba4: Pulling fs layer +4976663b5d6d: Waiting +169024b1fb13: Waiting +c0ffe8ce897f: Waiting +b583c09d23c3: Waiting +9b9f0c08d08f: Waiting +9cd51f984586: Waiting +d9f506bb8aca: Waiting +24d689f79ba4: Waiting +7a85079b8234: Verifying Checksum +7a85079b8234: Download complete +579c7ff691b1: Verifying Checksum +579c7ff691b1: Download complete +4976663b5d6d: Verifying Checksum +4976663b5d6d: Download complete +169024b1fb13: Verifying Checksum +169024b1fb13: Download complete +b583c09d23c3: Verifying Checksum +b583c09d23c3: Download complete +c0ffe8ce897f: Verifying Checksum +c0ffe8ce897f: Download complete +405f018f9d1d: Verifying Checksum +405f018f9d1d: Download complete +9b9f0c08d08f: Verifying Checksum +9b9f0c08d08f: Download complete +d9f506bb8aca: Verifying Checksum +d9f506bb8aca: Download complete +24d689f79ba4: Verifying Checksum +24d689f79ba4: Download complete +9cd51f984586: Verifying Checksum +9cd51f984586: Download complete +405f018f9d1d: Pull complete +7a85079b8234: Pull complete +579c7ff691b1: Pull complete +4976663b5d6d: Pull complete +169024b1fb13: Pull complete +c0ffe8ce897f: Pull complete +b583c09d23c3: Pull complete +9b9f0c08d08f: Pull complete +9cd51f984586: Pull complete +d9f506bb8aca: Pull complete +24d689f79ba4: Pull complete +Digest: sha256:88fcb7d92c7f61cd885c4d309c98461f3607aa6dbd57a2474be86e1956b36d13 +Status: Downloaded newer image for mariadb:10 +docker.io/library/mariadb:10 +5: Pulling from library/mysql +824b15f81d65: Pulling fs layer +c559dd1913db: Pulling fs layer +e201c19614e6: Pulling fs layer +f4247e8f6125: Pulling fs layer +dc9fefd8cfb5: Pulling fs layer +af3787edd16d: Pulling fs layer +b6bb40f875d3: Pulling fs layer +09914736f6f7: Pulling fs layer +32c835958ed8: Pulling fs layer +faa6834c9208: Pulling fs layer +ecf3b0798493: Pulling fs layer +af3787edd16d: Waiting +b6bb40f875d3: Waiting +09914736f6f7: Waiting +32c835958ed8: Waiting +faa6834c9208: Waiting +f4247e8f6125: Waiting +ecf3b0798493: Waiting +dc9fefd8cfb5: Waiting +c559dd1913db: Download complete +e201c19614e6: Verifying Checksum +e201c19614e6: Download complete +f4247e8f6125: Verifying Checksum +f4247e8f6125: Download complete +dc9fefd8cfb5: Verifying Checksum +dc9fefd8cfb5: Download complete +824b15f81d65: Verifying Checksum +824b15f81d65: Download complete +b6bb40f875d3: Verifying Checksum +b6bb40f875d3: Download complete +09914736f6f7: Verifying Checksum +09914736f6f7: Download complete +faa6834c9208: Verifying Checksum +faa6834c9208: Download complete +af3787edd16d: Verifying Checksum +af3787edd16d: Download complete +ecf3b0798493: Verifying Checksum +ecf3b0798493: Download complete +32c835958ed8: Verifying Checksum +32c835958ed8: Download complete +824b15f81d65: Pull complete +c559dd1913db: Pull complete +e201c19614e6: Pull complete +f4247e8f6125: Pull complete +dc9fefd8cfb5: Pull complete +af3787edd16d: Pull complete +b6bb40f875d3: Pull complete +09914736f6f7: Pull complete +32c835958ed8: Pull complete +faa6834c9208: Pull complete +ecf3b0798493: Pull complete +Digest: sha256:8b4b41d530c40d77a3205c53f7ecf1026d735648d9a09777845f305953e5eff5 +Status: Downloaded newer image for mysql:5 +docker.io/library/mysql:5 +Pulling OSM docker images +Pulling opensourcemano/mon:11 docker image +11: Pulling from opensourcemano/mon +d7bfe07ed847: Pulling fs layer +628bcfb499cb: Pulling fs layer +f5d59c25a781: Pulling fs layer +65c18c0e9bc7: Pulling fs layer +95d35ecb307c: Pulling fs layer +1e6d883dc6c0: Pulling fs layer +31169b28e3a1: Pulling fs layer +1df42af22e58: Pulling fs layer +051f40475366: Pulling fs layer +9fc84f0eb0db: Pulling fs layer +96b4c0ab0b16: Pulling fs layer +e0bbc20f517a: Pulling fs layer +cf3a201b670a: Pulling fs layer +d4d1d239a147: Pulling fs layer +65c18c0e9bc7: Waiting +95d35ecb307c: Waiting +1e6d883dc6c0: Waiting +31169b28e3a1: Waiting +1df42af22e58: Waiting +051f40475366: Waiting +9fc84f0eb0db: Waiting +96b4c0ab0b16: Waiting +e0bbc20f517a: Waiting +cf3a201b670a: Waiting +d4d1d239a147: Waiting +628bcfb499cb: Verifying Checksum +628bcfb499cb: Download complete +65c18c0e9bc7: Verifying Checksum +65c18c0e9bc7: Download complete +f5d59c25a781: Verifying Checksum +f5d59c25a781: Download complete +d7bfe07ed847: Verifying Checksum +d7bfe07ed847: Download complete +95d35ecb307c: Verifying Checksum +95d35ecb307c: Download complete +31169b28e3a1: Verifying Checksum +31169b28e3a1: Download complete +1df42af22e58: Verifying Checksum +1df42af22e58: Download complete +051f40475366: Verifying Checksum +051f40475366: Download complete +9fc84f0eb0db: Verifying Checksum +9fc84f0eb0db: Download complete +1e6d883dc6c0: Verifying Checksum +1e6d883dc6c0: Download complete +cf3a201b670a: Verifying Checksum +cf3a201b670a: Download complete +d4d1d239a147: Verifying Checksum +d4d1d239a147: Download complete +96b4c0ab0b16: Verifying Checksum +96b4c0ab0b16: Download complete +e0bbc20f517a: Verifying Checksum +e0bbc20f517a: Download complete +d7bfe07ed847: Pull complete +628bcfb499cb: Pull complete +f5d59c25a781: Pull complete +65c18c0e9bc7: Pull complete +95d35ecb307c: Pull complete +1e6d883dc6c0: Pull complete +31169b28e3a1: Pull complete +1df42af22e58: Pull complete +051f40475366: Pull complete +9fc84f0eb0db: Pull complete +96b4c0ab0b16: Pull complete +e0bbc20f517a: Pull complete +cf3a201b670a: Pull complete +d4d1d239a147: Pull complete +Digest: sha256:6b962cb796a6aa354acf41a1c7690cc679116ce81bcaa1c038d18bf3e205d5ab +Status: Downloaded newer image for opensourcemano/mon:11 +docker.io/opensourcemano/mon:11 +Pulling opensourcemano/pol:11 docker image +11: Pulling from opensourcemano/pol +d7bfe07ed847: Already exists +628bcfb499cb: Already exists +f5d59c25a781: Already exists +023bfe08cfe4: Pulling fs layer +3d92603162cd: Pulling fs layer +1f7bef05651a: Pulling fs layer +42f92e41a472: Pulling fs layer +4f40fec3a1a8: Pulling fs layer +14ac7edfbdfb: Pulling fs layer +d32615c73813: Pulling fs layer +fe785bd21ccf: Pulling fs layer +9880f1bb2989: Pulling fs layer +0d1094142c2c: Pulling fs layer +14ac7edfbdfb: Waiting +d32615c73813: Waiting +fe785bd21ccf: Waiting +9880f1bb2989: Waiting +0d1094142c2c: Waiting +42f92e41a472: Waiting +4f40fec3a1a8: Waiting +1f7bef05651a: Verifying Checksum +1f7bef05651a: Download complete +023bfe08cfe4: Verifying Checksum +023bfe08cfe4: Download complete +3d92603162cd: Verifying Checksum +3d92603162cd: Download complete +42f92e41a472: Verifying Checksum +42f92e41a472: Download complete +14ac7edfbdfb: Verifying Checksum +14ac7edfbdfb: Download complete +023bfe08cfe4: Pull complete +4f40fec3a1a8: Download complete +d32615c73813: Verifying Checksum +d32615c73813: Download complete +fe785bd21ccf: Verifying Checksum +fe785bd21ccf: Download complete +9880f1bb2989: Verifying Checksum +9880f1bb2989: Download complete +0d1094142c2c: Verifying Checksum +0d1094142c2c: Download complete +3d92603162cd: Pull complete +1f7bef05651a: Pull complete +42f92e41a472: Pull complete +4f40fec3a1a8: Pull complete +14ac7edfbdfb: Pull complete +d32615c73813: Pull complete +fe785bd21ccf: Pull complete +9880f1bb2989: Pull complete +0d1094142c2c: Pull complete +Digest: sha256:1829ff2616d76063b7041c83b7f941bb80b2a7f1b441d0dc3d34bb82518214fc +Status: Downloaded newer image for opensourcemano/pol:11 +docker.io/opensourcemano/pol:11 +Pulling opensourcemano/nbi:11 docker image +11: Pulling from opensourcemano/nbi +d7bfe07ed847: Already exists +628bcfb499cb: Already exists +f5d59c25a781: Already exists +7e7ae4d30d66: Pulling fs layer +32de122b1682: Pulling fs layer +de22c6c9c40e: Pulling fs layer +e955c360e79e: Pulling fs layer +85c8e90871ea: Pulling fs layer +238bf71d7e56: Pulling fs layer +e955c360e79e: Waiting +85c8e90871ea: Waiting +238bf71d7e56: Waiting +de22c6c9c40e: Verifying Checksum +de22c6c9c40e: Download complete +7e7ae4d30d66: Verifying Checksum +7e7ae4d30d66: Download complete +e955c360e79e: Verifying Checksum +e955c360e79e: Download complete +32de122b1682: Verifying Checksum +32de122b1682: Download complete +85c8e90871ea: Verifying Checksum +85c8e90871ea: Download complete +238bf71d7e56: Verifying Checksum +238bf71d7e56: Download complete +7e7ae4d30d66: Pull complete +32de122b1682: Pull complete +de22c6c9c40e: Pull complete +e955c360e79e: Pull complete +85c8e90871ea: Pull complete +238bf71d7e56: Pull complete +Digest: sha256:a7634ab1694d16937c4f9e912358f7a89aa25f6ca31eee45358e5b96b26e7e61 +Status: Downloaded newer image for opensourcemano/nbi:11 +docker.io/opensourcemano/nbi:11 +Pulling opensourcemano/keystone:11 docker image +11: Pulling from opensourcemano/keystone +d7bfe07ed847: Already exists +cb4119dd599e: Pulling fs layer +0dafd027e807: Pulling fs layer +17fcf4f59750: Pulling fs layer +b1be52d2d47d: Pulling fs layer +6792f7885d6f: Pulling fs layer +b1be52d2d47d: Waiting +6792f7885d6f: Waiting +cb4119dd599e: Verifying Checksum +cb4119dd599e: Download complete +0dafd027e807: Verifying Checksum +0dafd027e807: Download complete +cb4119dd599e: Pull complete +6792f7885d6f: Verifying Checksum +6792f7885d6f: Download complete +0dafd027e807: Pull complete +b1be52d2d47d: Verifying Checksum +b1be52d2d47d: Download complete +17fcf4f59750: Verifying Checksum +17fcf4f59750: Download complete +17fcf4f59750: Pull complete +b1be52d2d47d: Pull complete +6792f7885d6f: Pull complete +Digest: sha256:055c5ae8aab60cee82cec6e2bf7c507738d4b3224aba44628bd42bc446af5480 +Status: Downloaded newer image for opensourcemano/keystone:11 +docker.io/opensourcemano/keystone:11 +Pulling opensourcemano/ro:11 docker image +11: Pulling from opensourcemano/ro +d7bfe07ed847: Already exists +628bcfb499cb: Already exists +f5d59c25a781: Already exists +d37e2f98afe2: Pulling fs layer +ffa7f5fe465c: Pulling fs layer +d973cbca1a37: Pulling fs layer +a2b7cfaf29d3: Pulling fs layer +51518ef4214f: Pulling fs layer +a2b7cfaf29d3: Waiting +51518ef4214f: Waiting +d973cbca1a37: Verifying Checksum +d973cbca1a37: Download complete +a2b7cfaf29d3: Verifying Checksum +a2b7cfaf29d3: Download complete +d37e2f98afe2: Verifying Checksum +d37e2f98afe2: Download complete +51518ef4214f: Verifying Checksum +51518ef4214f: Download complete +ffa7f5fe465c: Verifying Checksum +ffa7f5fe465c: Download complete +d37e2f98afe2: Pull complete +ffa7f5fe465c: Pull complete +d973cbca1a37: Pull complete +a2b7cfaf29d3: Pull complete +51518ef4214f: Pull complete +Digest: sha256:18869b2a5a7f274807c6c9a002d33aafad2396345025edd6b89b04ad40b9d586 +Status: Downloaded newer image for opensourcemano/ro:11 +docker.io/opensourcemano/ro:11 +Pulling opensourcemano/lcm:11 docker image +11: Pulling from opensourcemano/lcm +d7bfe07ed847: Already exists +628bcfb499cb: Already exists +f5d59c25a781: Already exists +65c18c0e9bc7: Already exists +4a97f09a569c: Pulling fs layer +b2c57e7486df: Pulling fs layer +0a3d4f00fbc7: Pulling fs layer +8459dbade3e8: Pulling fs layer +a7f68d549cd5: Pulling fs layer +1df42af22e58: Pulling fs layer +051f40475366: Pulling fs layer +9fc84f0eb0db: Pulling fs layer +96b4c0ab0b16: Pulling fs layer +e0bbc20f517a: Pulling fs layer +31c668e1443a: Pulling fs layer +b61f559f3157: Pulling fs layer +8459dbade3e8: Waiting +a7f68d549cd5: Waiting +1df42af22e58: Waiting +051f40475366: Waiting +9fc84f0eb0db: Waiting +96b4c0ab0b16: Waiting +e0bbc20f517a: Waiting +31c668e1443a: Waiting +b61f559f3157: Waiting +4a97f09a569c: Download complete +0a3d4f00fbc7: Verifying Checksum +0a3d4f00fbc7: Download complete +4a97f09a569c: Pull complete +8459dbade3e8: Verifying Checksum +8459dbade3e8: Download complete +b2c57e7486df: Verifying Checksum +b2c57e7486df: Download complete +a7f68d549cd5: Verifying Checksum +a7f68d549cd5: Download complete +1df42af22e58: Verifying Checksum +1df42af22e58: Download complete +051f40475366: Verifying Checksum +051f40475366: Download complete +9fc84f0eb0db: Verifying Checksum +9fc84f0eb0db: Download complete +31c668e1443a: Verifying Checksum +31c668e1443a: Download complete +b61f559f3157: Verifying Checksum +b61f559f3157: Download complete +96b4c0ab0b16: Verifying Checksum +96b4c0ab0b16: Download complete +e0bbc20f517a: Verifying Checksum +e0bbc20f517a: Download complete +b2c57e7486df: Pull complete +0a3d4f00fbc7: Pull complete +8459dbade3e8: Pull complete +a7f68d549cd5: Pull complete +1df42af22e58: Pull complete +051f40475366: Pull complete +9fc84f0eb0db: Pull complete +96b4c0ab0b16: Pull complete +e0bbc20f517a: Pull complete +31c668e1443a: Pull complete +b61f559f3157: Pull complete +Digest: sha256:2c56a509c8e461f3714115612a25f0dd90f5d01823815b9bebfc6b8c5b1aefa0 +Status: Downloaded newer image for opensourcemano/lcm:11 +docker.io/opensourcemano/lcm:11 +Pulling opensourcemano/ng-ui:11 docker image +11: Pulling from opensourcemano/ng-ui +d7bfe07ed847: Already exists +628bcfb499cb: Already exists +04166b4508f4: Pulling fs layer +e561bebf8747: Pulling fs layer +c337aceaae52: Pulling fs layer +96c77785d1c7: Pulling fs layer +96c77785d1c7: Waiting +c337aceaae52: Verifying Checksum +c337aceaae52: Download complete +e561bebf8747: Download complete +04166b4508f4: Verifying Checksum +04166b4508f4: Download complete +96c77785d1c7: Verifying Checksum +96c77785d1c7: Download complete +04166b4508f4: Pull complete +e561bebf8747: Pull complete +c337aceaae52: Pull complete +96c77785d1c7: Pull complete +Digest: sha256:0ed13935f40bd9c3b79bcb38bbbc6765bd6942bb61cae02565e610783c69ac1e +Status: Downloaded newer image for opensourcemano/ng-ui:11 +docker.io/opensourcemano/ng-ui:11 +Pulling opensourcemano/osmclient:11 docker image +11: Pulling from opensourcemano/osmclient +d7bfe07ed847: Already exists +628bcfb499cb: Already exists +f5d59c25a781: Already exists +5e9bc90fc06f: Pulling fs layer +fa4ca325e2a3: Pulling fs layer +5e9bc90fc06f: Verifying Checksum +5e9bc90fc06f: Download complete +fa4ca325e2a3: Verifying Checksum +fa4ca325e2a3: Download complete +5e9bc90fc06f: Pull complete +fa4ca325e2a3: Pull complete +Digest: sha256:1de552a72b3c15d11c3941be95bcd0dc89effb5700ddad73bf64aa7cc96c1416 +Status: Downloaded newer image for opensourcemano/osmclient:11 +docker.io/opensourcemano/osmclient:11 +Finished pulling and generating docker images +Track docker_images docker_images_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656515489&event=docker_images&operation=docker_images_ok&value=&comment=&tags= +Track osm_files manifest_files_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656515489&event=osm_files&operation=manifest_files_ok&value=&comment=&tags= +Doing a backup of existing env files +cp: cannot stat '/etc/osm/docker/keystone-db.env': No such file or directory +cp: cannot stat '/etc/osm/docker/keystone.env': No such file or directory +cp: cannot stat '/etc/osm/docker/lcm.env': No such file or directory +cp: cannot stat '/etc/osm/docker/mon.env': No such file or directory +cp: cannot stat '/etc/osm/docker/nbi.env': No such file or directory +cp: cannot stat '/etc/osm/docker/pol.env': No such file or directory +cp: cannot stat '/etc/osm/docker/ro-db.env': No such file or directory +cp: cannot stat '/etc/osm/docker/ro.env': No such file or directory +Generating docker env files +OSMLCM_DATABASE_COMMONKEY=Qk49hPlciWmc020vxXBWn5xiCyOAiDRO +OSMLCM_VCA_HOST=192.168.64.23 +OSMLCM_VCA_SECRET=9dc5decf47cbf27da5c6059fde0606b1 +OSMLCM_VCA_PUBKEY=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDzgJ4FXAKQAbe2yzd3Tg31wSmxU9RNM75WymY8T89vm01Ms4JtJEEcgJ+aGNisdxPEWK8OFQQ1ovfjGiN8GvZSoHuqR7QvHeKtN4jKhP8yoNEYgDecVXK93HyEky9t0TY+XT42crEHVqCtDWfSKd4ZqwHrVmgnTYJEJ+8tjO9jJGTvbtoD+FxQRg5B3SHm+u0mhtnaLnOrlBIgxCMWBDK7Zsv1ESNKt2WUSAWfDpfbMhYKAUab6HreXvsBq9dNGmXd1nSan+9HW/auziPoL42mT6PTZSAgWQsd2SpowmeLsSDw7mpmgZkLUSBtNB5WEufdfoECTpw3amt1rAHAJKDb juju-client-key +OSMLCM_VCA_CACERT=LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVFekNDQW51Z0F3SUJBZ0lWQUtVTk5Nb0hJNjdGdllscGIxOGxieUUxQkp5RE1BMEdDU3FHU0liM0RRRUIKQ3dVQU1DRXhEVEFMQmdOVkJBb1RCRXAxYW5VeEVEQU9CZ05WQkFNVEIycDFhblV0WTJFd0hoY05Nakl3TmpJNQpNVFExTmpReFdoY05Nekl3TmpJNU1UVXdNVFF4V2pBaE1RMHdDd1lEVlFRS0V3UktkV3AxTVJBd0RnWURWUVFECkV3ZHFkV3AxTFdOaE1JSUJvakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBWThBTUlJQmlnS0NBWUVBNUEvdERvMDkKOVFDby94RW8zZDQxUnEwc0hQLzdPUjhRYXluZm83Lzk1K1Mvcm9GaU9mOTl2RU5kM2wvZUE4Mks5Z2xSL1RkMApiRkVtMmwvU3dYNjNmYW4vWTdQVnhTWHI1ZC9HMG5oRE9SZlFTem42MWZMSndsaTF2REhGR29yZElLQlBXQmhYCnZUZGZFVHFpVFpHVDRJYVhqVDQrYUtmQXlXUGhJOEtEQW1hY3VKODBhQU5PLzdqTUw3d1RnZHEwYVNmUUtmbUsKT0dKcW5naTJ2eGlmSHJOcENmTUJSbDkvTDVNYnV3OXl0WHNCaFNyUEJJTnJrODFocTJiQUhWajdOdmZQZlB1ZQphMlVCYjc4OGtNUCt4b25HaE4rOHBVWm9vQTNIRk1wM0pDVmQ5amJORGgvTTN1MnRSWmJyRk1zRVIzeFYrQXFnCmk2STN5OHhMRk5TYjExaFBibWUzWXB1b1N5SC8rWkRDb2pUY1hobVU2dWZweUFBQ1dlQ01nVkJzRkpLNzZDQzYKdmROQXNMMXVlVktCM0RXbHloNHBob1dtTVBiMHZKVUl1RzNoMVFETTJibVNENkpUUGJBMFNyQXBKcGlxTWJQeQp6QTlGZ2ZsYTJSMVIzNStyOEVNTlZwZFZMRzNkUzI5dHg1UzA3RTJYdTFackhoYU5NZDc2VmpCSEFnTUJBQUdqClFqQkFNQTRHQTFVZER3RUIvd1FFQXdJQ3BEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCU1kKNWpUUTU2UlRYTnFGODltNFE4UjJoU2Z6VVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVlFQTNpUzVxTlJhbWF3SwpwNXdMUHhKOXdRZGtTb3pqUUdxbHZ6dURydWpEZ3QzUloxS2l1MW5lQ1RMY3pMd0lOTWJhaGZaNzlOUW9hbXFKCjNqdWsrR1BvcnJnREozTjN4ZFhobTIzTzN6UE1INm93SDJwSGM4ZXYwK1JrcUx5TmduRmF2M05LUks1M0E3WmYKbkdNMGczOWFUVEF2NlNCdVZHRm93WGZNN0xSL2VTOFdVeXZRRlRicUhsbXBSVllLQ1c3WW8yRkR4dlJhOWVDKwpMbFJ1d3Qxb1RKMVB3alFJaGJpRSs1dGZCOTQ0ejhzZlhqTFNXbFd1cW5UcGk5TzJuTDNFUlZibHA1a0M4dUFUClNTeUV5Z0RPeHRJNGVOQ2hLa3drTnNORlJDeU9DTlZIdi9vQlcvTHB3cGxiR1pidWh0OE0xeWdCUjE5YkdJVksKWFNrWk1LVElycnc2VjZKSitSc1BPeFdNMmVodEtHdDNwTElIMVhqVnByeE5CMXp3R3ZHMFZETGttQWxENjNiUAo5NG1SaHJzM3ZXRGltSWtJUFpQS2ludnVpbVBzdGx1anE0c29RcWt3YytMQmlIS0M4VjBzQmRlMmdyZHU0YUVKCmRXaUI2UWZjNnJmUnF6V1k4RWFlV2xnL0c3RDVxc2N3Yy9SbEVITy8zVFM3b2IrUEVBRmgKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoK +# OSMLCM_VCA_ENABLEOSUPGRADE=false +# OSMLCM_VCA_APTMIRROR=http://archive.ubuntu.com/ubuntu/ +OSMLCM_VCA_CLOUD=lxd-cloud +OSMLCM_VCA_K8S_CLOUD=k8scloud +MYSQL_ROOT_PASSWORD=BgS1rJ2kIjaKkHQDirhsHUODjNRLqXkz +RO_DB_ROOT_PASSWORD=BgS1rJ2kIjaKkHQDirhsHUODjNRLqXkz +OSMRO_DATABASE_COMMONKEY=Qk49hPlciWmc020vxXBWn5xiCyOAiDRO +MYSQL_ROOT_PASSWORD=BgS1rJ2kIjaKkHQDirhsHUODjNRLqXkz +ROOT_DB_PASSWORD=BgS1rJ2kIjaKkHQDirhsHUODjNRLqXkz +KEYSTONE_DB_PASSWORD=KwXanzVPNxrQq0cBj3bfACz74KHwoIKJ +SERVICE_PASSWORD=qEZQSi5c9CWc8WucnpmuQzavHzi1sQnu +OSMNBI_AUTHENTICATION_SERVICE_PASSWORD=qEZQSi5c9CWc8WucnpmuQzavHzi1sQnu +OSMNBI_DATABASE_COMMONKEY=Qk49hPlciWmc020vxXBWn5xiCyOAiDRO +OSMMON_KEYSTONE_SERVICE_PASSWORD=qEZQSi5c9CWc8WucnpmuQzavHzi1sQnu +OSMMON_DATABASE_COMMONKEY=Qk49hPlciWmc020vxXBWn5xiCyOAiDRO +OSMMON_SQL_DATABASE_URI=mysql://root:BgS1rJ2kIjaKkHQDirhsHUODjNRLqXkz@mysql:3306/mon +OS_NOTIFIER_URI=http://192.168.64.23:8662 +OSMMON_VCA_HOST=192.168.64.23 +OSMMON_VCA_SECRET=9dc5decf47cbf27da5c6059fde0606b1 +OSMMON_VCA_CACERT=LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVFekNDQW51Z0F3SUJBZ0lWQUtVTk5Nb0hJNjdGdllscGIxOGxieUUxQkp5RE1BMEdDU3FHU0liM0RRRUIKQ3dVQU1DRXhEVEFMQmdOVkJBb1RCRXAxYW5VeEVEQU9CZ05WQkFNVEIycDFhblV0WTJFd0hoY05Nakl3TmpJNQpNVFExTmpReFdoY05Nekl3TmpJNU1UVXdNVFF4V2pBaE1RMHdDd1lEVlFRS0V3UktkV3AxTVJBd0RnWURWUVFECkV3ZHFkV3AxTFdOaE1JSUJvakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBWThBTUlJQmlnS0NBWUVBNUEvdERvMDkKOVFDby94RW8zZDQxUnEwc0hQLzdPUjhRYXluZm83Lzk1K1Mvcm9GaU9mOTl2RU5kM2wvZUE4Mks5Z2xSL1RkMApiRkVtMmwvU3dYNjNmYW4vWTdQVnhTWHI1ZC9HMG5oRE9SZlFTem42MWZMSndsaTF2REhGR29yZElLQlBXQmhYCnZUZGZFVHFpVFpHVDRJYVhqVDQrYUtmQXlXUGhJOEtEQW1hY3VKODBhQU5PLzdqTUw3d1RnZHEwYVNmUUtmbUsKT0dKcW5naTJ2eGlmSHJOcENmTUJSbDkvTDVNYnV3OXl0WHNCaFNyUEJJTnJrODFocTJiQUhWajdOdmZQZlB1ZQphMlVCYjc4OGtNUCt4b25HaE4rOHBVWm9vQTNIRk1wM0pDVmQ5amJORGgvTTN1MnRSWmJyRk1zRVIzeFYrQXFnCmk2STN5OHhMRk5TYjExaFBibWUzWXB1b1N5SC8rWkRDb2pUY1hobVU2dWZweUFBQ1dlQ01nVkJzRkpLNzZDQzYKdmROQXNMMXVlVktCM0RXbHloNHBob1dtTVBiMHZKVUl1RzNoMVFETTJibVNENkpUUGJBMFNyQXBKcGlxTWJQeQp6QTlGZ2ZsYTJSMVIzNStyOEVNTlZwZFZMRzNkUzI5dHg1UzA3RTJYdTFackhoYU5NZDc2VmpCSEFnTUJBQUdqClFqQkFNQTRHQTFVZER3RUIvd1FFQXdJQ3BEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCU1kKNWpUUTU2UlRYTnFGODltNFE4UjJoU2Z6VVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVlFQTNpUzVxTlJhbWF3SwpwNXdMUHhKOXdRZGtTb3pqUUdxbHZ6dURydWpEZ3QzUloxS2l1MW5lQ1RMY3pMd0lOTWJhaGZaNzlOUW9hbXFKCjNqdWsrR1BvcnJnREozTjN4ZFhobTIzTzN6UE1INm93SDJwSGM4ZXYwK1JrcUx5TmduRmF2M05LUks1M0E3WmYKbkdNMGczOWFUVEF2NlNCdVZHRm93WGZNN0xSL2VTOFdVeXZRRlRicUhsbXBSVllLQ1c3WW8yRkR4dlJhOWVDKwpMbFJ1d3Qxb1RKMVB3alFJaGJpRSs1dGZCOTQ0ejhzZlhqTFNXbFd1cW5UcGk5TzJuTDNFUlZibHA1a0M4dUFUClNTeUV5Z0RPeHRJNGVOQ2hLa3drTnNORlJDeU9DTlZIdi9vQlcvTHB3cGxiR1pidWh0OE0xeWdCUjE5YkdJVksKWFNrWk1LVElycnc2VjZKSitSc1BPeFdNMmVodEtHdDNwTElIMVhqVnByeE5CMXp3R3ZHMFZETGttQWxENjNiUAo5NG1SaHJzM3ZXRGltSWtJUFpQS2ludnVpbVBzdGx1anE0c29RcWt3YytMQmlIS0M4VjBzQmRlMmdyZHU0YUVKCmRXaUI2UWZjNnJmUnF6V1k4RWFlV2xnL0c3RDVxc2N3Yy9SbEVITy8zVFM3b2IrUEVBRmgKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoK +OSMPOL_SQL_DATABASE_URI=mysql://root:BgS1rJ2kIjaKkHQDirhsHUODjNRLqXkz@mysql:3306/pol +Finished generation of docker env files +Track osm_files env_files_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656515490&event=osm_files&operation=env_files_ok&value=&comment=&tags= +Added 'osm' model on k8scloud with credential 'k8scloud' for user 'admin' +Located charm "mongodb-k8s" in charm-hub, revision 1 +Deploying "mongodb-k8s" from charm-hub charm "mongodb-k8s", revision 1 in channel stable on focal +Track deploy_osm deploy_charmed_services_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656515507&event=deploy_osm&operation=deploy_charmed_services_ok&value=&comment=&tags= +Error from server (AlreadyExists): namespaces "osm" already exists +secret/lcm-secret created +secret/mon-secret created +secret/nbi-secret created +secret/ro-db-secret created +secret/ro-secret created +secret/keystone-secret created +secret/pol-secret created +Track deploy_osm kube_secrets_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656515509&event=deploy_osm&operation=kube_secrets_ok&value=&comment=&tags= +Track deploy_osm update_manifest_files_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656515509&event=deploy_osm&operation=update_manifest_files_ok&value=&comment=&tags= +Track deploy_osm namespace_vol_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656515511&event=deploy_osm&operation=namespace_vol_ok&value=&comment=&tags= +clusterrole.rbac.authorization.k8s.io/grafana-clusterrole created +clusterrolebinding.rbac.authorization.k8s.io/grafana-clusterrolebinding created +secret/grafana created +serviceaccount/grafana created +configmap/grafana-dashboard-provider created +configmap/grafana-datasource created +configmap/grafana created +deployment.apps/grafana created +service/grafana created +service/kafka created +statefulset.apps/kafka created +service/keystone created +deployment.apps/keystone created +deployment.apps/lcm created +service/mon created +deployment.apps/mon created +service/mysql created +statefulset.apps/mysql created +service/nbi created +deployment.apps/nbi created +service/ng-ui created +deployment.apps/ng-ui created +deployment.apps/pol created +service/prometheus created +configmap/prom created +statefulset.apps/prometheus created +service/ro created +deployment.apps/ro created +service/zookeeper created +statefulset.apps/zookeeper created +Track deploy_osm deploy_osm_services_k8s_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656515518&event=deploy_osm&operation=deploy_osm_services_k8s_ok&value=&comment=&tags= +sed: can't read /etc/osm/docker/osm_pla/pla.yaml: No such file or directory +error: the path "/etc/osm/docker/osm_pla" does not exist +Track deploy_osm deploy_osm_pla_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656515520&event=deploy_osm&operation=deploy_osm_pla_ok&value=&comment=&tags= + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed +100 3120 100 3120 0 0 9043 0 --:--:-- --:--:-- --:--:-- 9043 +OK +Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease +Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:5 https://download.docker.com/linux/ubuntu focal InRelease +Hit:6 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Hit:7 https://packages.cloud.google.com/apt kubernetes-xenial InRelease +Get:8 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable/osmclient amd64 Packages [474 B] +Get:9 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable/IM amd64 Packages [901 B] +Fetched 1375 B in 5s (254 B/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Hit:1 https://download.docker.com/linux/ubuntu focal InRelease +Hit:2 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:4 http://security.ubuntu.com/ubuntu focal-security InRelease +Hit:6 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:7 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Get:5 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [9383 B] +Fetched 9383 B in 4s (2197 B/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following additional packages will be installed: + binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-9 + dpkg-dev fakeroot g++ g++-9 gcc gcc-9 gcc-9-base libalgorithm-diff-perl + libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan5 libatomic1 + libbinutils libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 + libctf0 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl + libgcc-9-dev libgomp1 libisl22 libitm1 liblsan0 libmpc3 libpython3-dev + libpython3.8-dev libquadmath0 libstdc++-9-dev libtsan0 libubsan1 + linux-libc-dev make manpages-dev python-pip-whl python3-dev python3-wheel + python3.8-dev zlib1g-dev +Suggested packages: + binutils-doc cpp-doc gcc-9-locales debian-keyring g++-multilib + g++-9-multilib gcc-9-doc gcc-multilib autoconf automake libtool flex bison + gdb gcc-doc gcc-9-multilib glibc-doc bzr libstdc++-9-doc make-doc +The following NEW packages will be installed: + binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-9 + dpkg-dev fakeroot g++ g++-9 gcc gcc-9 gcc-9-base libalgorithm-diff-perl + libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan5 libatomic1 + libbinutils libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 + libctf0 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl + libgcc-9-dev libgomp1 libisl22 libitm1 liblsan0 libmpc3 libpython3-dev + libpython3.8-dev libquadmath0 libstdc++-9-dev libtsan0 libubsan1 + linux-libc-dev make manpages-dev python-pip-whl python3-dev python3-pip + python3-wheel python3.8-dev zlib1g-dev +0 upgraded, 50 newly installed, 0 to remove and 21 not upgraded. +Need to get 52.2 MB of archives. +After this operation, 228 MB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 binutils-common amd64 2.34-6ubuntu1.3 [207 kB] +Get:2 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libbinutils amd64 2.34-6ubuntu1.3 [474 kB] +Get:3 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libctf-nobfd0 amd64 2.34-6ubuntu1.3 [47.4 kB] +Get:4 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libctf0 amd64 2.34-6ubuntu1.3 [46.6 kB] +Get:5 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.34-6ubuntu1.3 [1613 kB] +Get:6 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 binutils amd64 2.34-6ubuntu1.3 [3380 B] +Get:7 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libc-dev-bin amd64 2.31-0ubuntu9.9 [71.8 kB] +Get:8 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-libc-dev amd64 5.4.0-121.137 [1099 kB] +Get:9 http://archive.ubuntu.com/ubuntu focal/main amd64 libcrypt-dev amd64 1:4.4.10-10ubuntu4 [104 kB] +Get:10 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libc6-dev amd64 2.31-0ubuntu9.9 [2519 kB] +Get:11 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 gcc-9-base amd64 9.4.0-1ubuntu1~20.04.1 [19.4 kB] +Get:12 http://archive.ubuntu.com/ubuntu focal/main amd64 libisl22 amd64 0.22.1-1 [592 kB] +Get:13 http://archive.ubuntu.com/ubuntu focal/main amd64 libmpc3 amd64 1.1.0-1 [40.8 kB] +Get:14 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 cpp-9 amd64 9.4.0-1ubuntu1~20.04.1 [7500 kB] +Get:15 http://archive.ubuntu.com/ubuntu focal/main amd64 cpp amd64 4:9.3.0-1ubuntu2 [27.6 kB] +Get:16 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libcc1-0 amd64 10.3.0-1ubuntu1~20.04 [48.8 kB] +Get:17 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libgomp1 amd64 10.3.0-1ubuntu1~20.04 [102 kB] +Get:18 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libitm1 amd64 10.3.0-1ubuntu1~20.04 [26.2 kB] +Get:19 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libatomic1 amd64 10.3.0-1ubuntu1~20.04 [9284 B] +Get:20 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libasan5 amd64 9.4.0-1ubuntu1~20.04.1 [2751 kB] +Get:21 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 liblsan0 amd64 10.3.0-1ubuntu1~20.04 [835 kB] +Get:22 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libtsan0 amd64 10.3.0-1ubuntu1~20.04 [2009 kB] +Get:23 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libubsan1 amd64 10.3.0-1ubuntu1~20.04 [784 kB] +Get:24 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libquadmath0 amd64 10.3.0-1ubuntu1~20.04 [146 kB] +Get:25 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libgcc-9-dev amd64 9.4.0-1ubuntu1~20.04.1 [2359 kB] +Get:26 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 gcc-9 amd64 9.4.0-1ubuntu1~20.04.1 [8274 kB] +Get:27 http://archive.ubuntu.com/ubuntu focal/main amd64 gcc amd64 4:9.3.0-1ubuntu2 [5208 B] +Get:28 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libstdc++-9-dev amd64 9.4.0-1ubuntu1~20.04.1 [1722 kB] +Get:29 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 g++-9 amd64 9.4.0-1ubuntu1~20.04.1 [8420 kB] +Get:30 http://archive.ubuntu.com/ubuntu focal/main amd64 g++ amd64 4:9.3.0-1ubuntu2 [1604 B] +Get:31 http://archive.ubuntu.com/ubuntu focal/main amd64 make amd64 4.2.1-1.2 [162 kB] +Get:32 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libdpkg-perl all 1.19.7ubuntu3.2 [231 kB] +Get:33 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 dpkg-dev all 1.19.7ubuntu3.2 [679 kB] +Get:34 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 build-essential amd64 12.8ubuntu1.1 [4664 B] +Get:35 http://archive.ubuntu.com/ubuntu focal/main amd64 libfakeroot amd64 1.24-1 [25.7 kB] +Get:36 http://archive.ubuntu.com/ubuntu focal/main amd64 fakeroot amd64 1.24-1 [62.6 kB] +Get:37 http://archive.ubuntu.com/ubuntu focal/main amd64 libalgorithm-diff-perl all 1.19.03-2 [46.6 kB] +Get:38 http://archive.ubuntu.com/ubuntu focal/main amd64 libalgorithm-diff-xs-perl amd64 0.04-6 [11.3 kB] +Get:39 http://archive.ubuntu.com/ubuntu focal/main amd64 libalgorithm-merge-perl all 0.08-3 [12.0 kB] +Get:40 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libexpat1-dev amd64 2.2.9-1ubuntu0.4 [117 kB] +Get:41 http://archive.ubuntu.com/ubuntu focal/main amd64 libfile-fcntllock-perl amd64 0.22-3build4 [33.1 kB] +Get:42 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libpython3.8-dev amd64 3.8.10-0ubuntu1~20.04.4 [3952 kB] +Get:43 http://archive.ubuntu.com/ubuntu focal/main amd64 libpython3-dev amd64 3.8.2-0ubuntu2 [7236 B] +Get:44 http://archive.ubuntu.com/ubuntu focal/main amd64 manpages-dev all 5.05-1 [2266 kB] +Get:45 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 python-pip-whl all 20.0.2-5ubuntu1.6 [1805 kB] +Get:46 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 zlib1g-dev amd64 1:1.2.11.dfsg-2ubuntu1.3 [155 kB] +Get:47 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 python3.8-dev amd64 3.8.10-0ubuntu1~20.04.4 [514 kB] +Get:48 http://archive.ubuntu.com/ubuntu focal/main amd64 python3-dev amd64 3.8.2-0ubuntu2 [1212 B] +Get:49 http://archive.ubuntu.com/ubuntu focal/universe amd64 python3-wheel all 0.34.2-1 [23.8 kB] +Get:50 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 python3-pip all 20.0.2-5ubuntu1.6 [231 kB] +Fetched 52.2 MB in 4s (13.8 MB/s) +Selecting previously unselected package binutils-common:amd64. +(Reading database ... 65318 files and directories currently installed.) +Preparing to unpack .../00-binutils-common_2.34-6ubuntu1.3_amd64.deb ... +Unpacking binutils-common:amd64 (2.34-6ubuntu1.3) ... +Selecting previously unselected package libbinutils:amd64. +Preparing to unpack .../01-libbinutils_2.34-6ubuntu1.3_amd64.deb ... +Unpacking libbinutils:amd64 (2.34-6ubuntu1.3) ... +Selecting previously unselected package libctf-nobfd0:amd64. +Preparing to unpack .../02-libctf-nobfd0_2.34-6ubuntu1.3_amd64.deb ... +Unpacking libctf-nobfd0:amd64 (2.34-6ubuntu1.3) ... +Selecting previously unselected package libctf0:amd64. +Preparing to unpack .../03-libctf0_2.34-6ubuntu1.3_amd64.deb ... +Unpacking libctf0:amd64 (2.34-6ubuntu1.3) ... +Selecting previously unselected package binutils-x86-64-linux-gnu. +Preparing to unpack .../04-binutils-x86-64-linux-gnu_2.34-6ubuntu1.3_amd64.deb ... +Unpacking binutils-x86-64-linux-gnu (2.34-6ubuntu1.3) ... +Selecting previously unselected package binutils. +Preparing to unpack .../05-binutils_2.34-6ubuntu1.3_amd64.deb ... +Unpacking binutils (2.34-6ubuntu1.3) ... +Selecting previously unselected package libc-dev-bin. +Preparing to unpack .../06-libc-dev-bin_2.31-0ubuntu9.9_amd64.deb ... +Unpacking libc-dev-bin (2.31-0ubuntu9.9) ... +Selecting previously unselected package linux-libc-dev:amd64. +Preparing to unpack .../07-linux-libc-dev_5.4.0-121.137_amd64.deb ... +Unpacking linux-libc-dev:amd64 (5.4.0-121.137) ... +Selecting previously unselected package libcrypt-dev:amd64. +Preparing to unpack .../08-libcrypt-dev_1%3a4.4.10-10ubuntu4_amd64.deb ... +Unpacking libcrypt-dev:amd64 (1:4.4.10-10ubuntu4) ... +Selecting previously unselected package libc6-dev:amd64. +Preparing to unpack .../09-libc6-dev_2.31-0ubuntu9.9_amd64.deb ... +Unpacking libc6-dev:amd64 (2.31-0ubuntu9.9) ... +Selecting previously unselected package gcc-9-base:amd64. +Preparing to unpack .../10-gcc-9-base_9.4.0-1ubuntu1~20.04.1_amd64.deb ... +Unpacking gcc-9-base:amd64 (9.4.0-1ubuntu1~20.04.1) ... +Selecting previously unselected package libisl22:amd64. +Preparing to unpack .../11-libisl22_0.22.1-1_amd64.deb ... +Unpacking libisl22:amd64 (0.22.1-1) ... +Selecting previously unselected package libmpc3:amd64. +Preparing to unpack .../12-libmpc3_1.1.0-1_amd64.deb ... +Unpacking libmpc3:amd64 (1.1.0-1) ... +Selecting previously unselected package cpp-9. +Preparing to unpack .../13-cpp-9_9.4.0-1ubuntu1~20.04.1_amd64.deb ... +Unpacking cpp-9 (9.4.0-1ubuntu1~20.04.1) ... +Selecting previously unselected package cpp. +Preparing to unpack .../14-cpp_4%3a9.3.0-1ubuntu2_amd64.deb ... +Unpacking cpp (4:9.3.0-1ubuntu2) ... +Selecting previously unselected package libcc1-0:amd64. +Preparing to unpack .../15-libcc1-0_10.3.0-1ubuntu1~20.04_amd64.deb ... +Unpacking libcc1-0:amd64 (10.3.0-1ubuntu1~20.04) ... +Selecting previously unselected package libgomp1:amd64. +Preparing to unpack .../16-libgomp1_10.3.0-1ubuntu1~20.04_amd64.deb ... +Unpacking libgomp1:amd64 (10.3.0-1ubuntu1~20.04) ... +Selecting previously unselected package libitm1:amd64. +Preparing to unpack .../17-libitm1_10.3.0-1ubuntu1~20.04_amd64.deb ... +Unpacking libitm1:amd64 (10.3.0-1ubuntu1~20.04) ... +Selecting previously unselected package libatomic1:amd64. +Preparing to unpack .../18-libatomic1_10.3.0-1ubuntu1~20.04_amd64.deb ... +Unpacking libatomic1:amd64 (10.3.0-1ubuntu1~20.04) ... +Selecting previously unselected package libasan5:amd64. +Preparing to unpack .../19-libasan5_9.4.0-1ubuntu1~20.04.1_amd64.deb ... +Unpacking libasan5:amd64 (9.4.0-1ubuntu1~20.04.1) ... +Selecting previously unselected package liblsan0:amd64. +Preparing to unpack .../20-liblsan0_10.3.0-1ubuntu1~20.04_amd64.deb ... +Unpacking liblsan0:amd64 (10.3.0-1ubuntu1~20.04) ... +Selecting previously unselected package libtsan0:amd64. +Preparing to unpack .../21-libtsan0_10.3.0-1ubuntu1~20.04_amd64.deb ... +Unpacking libtsan0:amd64 (10.3.0-1ubuntu1~20.04) ... +Selecting previously unselected package libubsan1:amd64. +Preparing to unpack .../22-libubsan1_10.3.0-1ubuntu1~20.04_amd64.deb ... +Unpacking libubsan1:amd64 (10.3.0-1ubuntu1~20.04) ... +Selecting previously unselected package libquadmath0:amd64. +Preparing to unpack .../23-libquadmath0_10.3.0-1ubuntu1~20.04_amd64.deb ... +Unpacking libquadmath0:amd64 (10.3.0-1ubuntu1~20.04) ... +Selecting previously unselected package libgcc-9-dev:amd64. +Preparing to unpack .../24-libgcc-9-dev_9.4.0-1ubuntu1~20.04.1_amd64.deb ... +Unpacking libgcc-9-dev:amd64 (9.4.0-1ubuntu1~20.04.1) ... +Selecting previously unselected package gcc-9. +Preparing to unpack .../25-gcc-9_9.4.0-1ubuntu1~20.04.1_amd64.deb ... +Unpacking gcc-9 (9.4.0-1ubuntu1~20.04.1) ... +Selecting previously unselected package gcc. +Preparing to unpack .../26-gcc_4%3a9.3.0-1ubuntu2_amd64.deb ... +Unpacking gcc (4:9.3.0-1ubuntu2) ... +Selecting previously unselected package libstdc++-9-dev:amd64. +Preparing to unpack .../27-libstdc++-9-dev_9.4.0-1ubuntu1~20.04.1_amd64.deb ... +Unpacking libstdc++-9-dev:amd64 (9.4.0-1ubuntu1~20.04.1) ... +Selecting previously unselected package g++-9. +Preparing to unpack .../28-g++-9_9.4.0-1ubuntu1~20.04.1_amd64.deb ... +Unpacking g++-9 (9.4.0-1ubuntu1~20.04.1) ... +Selecting previously unselected package g++. +Preparing to unpack .../29-g++_4%3a9.3.0-1ubuntu2_amd64.deb ... +Unpacking g++ (4:9.3.0-1ubuntu2) ... +Selecting previously unselected package make. +Preparing to unpack .../30-make_4.2.1-1.2_amd64.deb ... +Unpacking make (4.2.1-1.2) ... +Selecting previously unselected package libdpkg-perl. +Preparing to unpack .../31-libdpkg-perl_1.19.7ubuntu3.2_all.deb ... +Unpacking libdpkg-perl (1.19.7ubuntu3.2) ... +Selecting previously unselected package dpkg-dev. +Preparing to unpack .../32-dpkg-dev_1.19.7ubuntu3.2_all.deb ... +Unpacking dpkg-dev (1.19.7ubuntu3.2) ... +Selecting previously unselected package build-essential. +Preparing to unpack .../33-build-essential_12.8ubuntu1.1_amd64.deb ... +Unpacking build-essential (12.8ubuntu1.1) ... +Selecting previously unselected package libfakeroot:amd64. +Preparing to unpack .../34-libfakeroot_1.24-1_amd64.deb ... +Unpacking libfakeroot:amd64 (1.24-1) ... +Selecting previously unselected package fakeroot. +Preparing to unpack .../35-fakeroot_1.24-1_amd64.deb ... +Unpacking fakeroot (1.24-1) ... +Selecting previously unselected package libalgorithm-diff-perl. +Preparing to unpack .../36-libalgorithm-diff-perl_1.19.03-2_all.deb ... +Unpacking libalgorithm-diff-perl (1.19.03-2) ... +Selecting previously unselected package libalgorithm-diff-xs-perl. +Preparing to unpack .../37-libalgorithm-diff-xs-perl_0.04-6_amd64.deb ... +Unpacking libalgorithm-diff-xs-perl (0.04-6) ... +Selecting previously unselected package libalgorithm-merge-perl. +Preparing to unpack .../38-libalgorithm-merge-perl_0.08-3_all.deb ... +Unpacking libalgorithm-merge-perl (0.08-3) ... +Selecting previously unselected package libexpat1-dev:amd64. +Preparing to unpack .../39-libexpat1-dev_2.2.9-1ubuntu0.4_amd64.deb ... +Unpacking libexpat1-dev:amd64 (2.2.9-1ubuntu0.4) ... +Selecting previously unselected package libfile-fcntllock-perl. +Preparing to unpack .../40-libfile-fcntllock-perl_0.22-3build4_amd64.deb ... +Unpacking libfile-fcntllock-perl (0.22-3build4) ... +Selecting previously unselected package libpython3.8-dev:amd64. +Preparing to unpack .../41-libpython3.8-dev_3.8.10-0ubuntu1~20.04.4_amd64.deb ... +Unpacking libpython3.8-dev:amd64 (3.8.10-0ubuntu1~20.04.4) ... +Selecting previously unselected package libpython3-dev:amd64. +Preparing to unpack .../42-libpython3-dev_3.8.2-0ubuntu2_amd64.deb ... +Unpacking libpython3-dev:amd64 (3.8.2-0ubuntu2) ... +Selecting previously unselected package manpages-dev. +Preparing to unpack .../43-manpages-dev_5.05-1_all.deb ... +Unpacking manpages-dev (5.05-1) ... +Selecting previously unselected package python-pip-whl. +Preparing to unpack .../44-python-pip-whl_20.0.2-5ubuntu1.6_all.deb ... +Unpacking python-pip-whl (20.0.2-5ubuntu1.6) ... +Selecting previously unselected package zlib1g-dev:amd64. +Preparing to unpack .../45-zlib1g-dev_1%3a1.2.11.dfsg-2ubuntu1.3_amd64.deb ... +Unpacking zlib1g-dev:amd64 (1:1.2.11.dfsg-2ubuntu1.3) ... +Selecting previously unselected package python3.8-dev. +Preparing to unpack .../46-python3.8-dev_3.8.10-0ubuntu1~20.04.4_amd64.deb ... +Unpacking python3.8-dev (3.8.10-0ubuntu1~20.04.4) ... +Selecting previously unselected package python3-dev. +Preparing to unpack .../47-python3-dev_3.8.2-0ubuntu2_amd64.deb ... +Unpacking python3-dev (3.8.2-0ubuntu2) ... +Selecting previously unselected package python3-wheel. +Preparing to unpack .../48-python3-wheel_0.34.2-1_all.deb ... +Unpacking python3-wheel (0.34.2-1) ... +Selecting previously unselected package python3-pip. +Preparing to unpack .../49-python3-pip_20.0.2-5ubuntu1.6_all.deb ... +Unpacking python3-pip (20.0.2-5ubuntu1.6) ... +Setting up manpages-dev (5.05-1) ... +Setting up libfile-fcntllock-perl (0.22-3build4) ... +Setting up libalgorithm-diff-perl (1.19.03-2) ... +Setting up binutils-common:amd64 (2.34-6ubuntu1.3) ... +Setting up linux-libc-dev:amd64 (5.4.0-121.137) ... +Setting up libctf-nobfd0:amd64 (2.34-6ubuntu1.3) ... +Setting up libgomp1:amd64 (10.3.0-1ubuntu1~20.04) ... +Setting up python3-wheel (0.34.2-1) ... +Setting up libfakeroot:amd64 (1.24-1) ... +Setting up fakeroot (1.24-1) ... +update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode +Setting up make (4.2.1-1.2) ... +Setting up libquadmath0:amd64 (10.3.0-1ubuntu1~20.04) ... +Setting up libmpc3:amd64 (1.1.0-1) ... +Setting up libatomic1:amd64 (10.3.0-1ubuntu1~20.04) ... +Setting up libdpkg-perl (1.19.7ubuntu3.2) ... +Setting up libubsan1:amd64 (10.3.0-1ubuntu1~20.04) ... +Setting up libcrypt-dev:amd64 (1:4.4.10-10ubuntu4) ... +Setting up libisl22:amd64 (0.22.1-1) ... +Setting up python-pip-whl (20.0.2-5ubuntu1.6) ... +Setting up libbinutils:amd64 (2.34-6ubuntu1.3) ... +Setting up libc-dev-bin (2.31-0ubuntu9.9) ... +Setting up libalgorithm-diff-xs-perl (0.04-6) ... +Setting up libcc1-0:amd64 (10.3.0-1ubuntu1~20.04) ... +Setting up liblsan0:amd64 (10.3.0-1ubuntu1~20.04) ... +Setting up libitm1:amd64 (10.3.0-1ubuntu1~20.04) ... +Setting up gcc-9-base:amd64 (9.4.0-1ubuntu1~20.04.1) ... +Setting up libalgorithm-merge-perl (0.08-3) ... +Setting up libtsan0:amd64 (10.3.0-1ubuntu1~20.04) ... +Setting up libctf0:amd64 (2.34-6ubuntu1.3) ... +Setting up libasan5:amd64 (9.4.0-1ubuntu1~20.04.1) ... +Setting up python3-pip (20.0.2-5ubuntu1.6) ... +Setting up cpp-9 (9.4.0-1ubuntu1~20.04.1) ... +Setting up libc6-dev:amd64 (2.31-0ubuntu9.9) ... +Setting up binutils-x86-64-linux-gnu (2.34-6ubuntu1.3) ... +Setting up binutils (2.34-6ubuntu1.3) ... +Setting up dpkg-dev (1.19.7ubuntu3.2) ... +Setting up libgcc-9-dev:amd64 (9.4.0-1ubuntu1~20.04.1) ... +Setting up libexpat1-dev:amd64 (2.2.9-1ubuntu0.4) ... +Setting up libpython3.8-dev:amd64 (3.8.10-0ubuntu1~20.04.4) ... +Setting up zlib1g-dev:amd64 (1:1.2.11.dfsg-2ubuntu1.3) ... +Setting up cpp (4:9.3.0-1ubuntu2) ... +Setting up gcc-9 (9.4.0-1ubuntu1~20.04.1) ... +Setting up libpython3-dev:amd64 (3.8.2-0ubuntu2) ... +Setting up libstdc++-9-dev:amd64 (9.4.0-1ubuntu1~20.04.1) ... +Setting up gcc (4:9.3.0-1ubuntu2) ... +Setting up g++-9 (9.4.0-1ubuntu1~20.04.1) ... +Setting up python3.8-dev (3.8.10-0ubuntu1~20.04.4) ... +Setting up g++ (4:9.3.0-1ubuntu2) ... +update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode +Setting up build-essential (12.8ubuntu1.1) ... +Setting up python3-dev (3.8.2-0ubuntu2) ... +Processing triggers for man-db (2.9.1-1) ... +Processing triggers for libc-bin (2.31-0ubuntu9.9) ... +Collecting pip + Downloading pip-22.1.2-py3-none-any.whl (2.1 MB) +Installing collected packages: pip + Attempting uninstall: pip + Found existing installation: pip 20.0.2 + Not uninstalling pip at /usr/lib/python3/dist-packages, outside environment /usr + Can't uninstall 'pip'. No files were found to uninstall. +Successfully installed pip-22.1.2 +Collecting python-magic + Downloading python_magic-0.4.27-py2.py3-none-any.whl (13 kB) +Collecting pyangbind + Downloading pyangbind-0.8.1.tar.gz (48 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 48.6/48.6 kB 2.5 MB/s eta 0:00:00 + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' +Collecting verboselogs + Downloading verboselogs-1.7-py2.py3-none-any.whl (11 kB) +Collecting bitarray + Downloading bitarray-2.5.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (242 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 242.4/242.4 kB 1.6 MB/s eta 0:00:00 +Collecting enum34 + Downloading enum34-1.1.10-py3-none-any.whl (11 kB) +Collecting lxml + Downloading lxml-4.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (6.9 MB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.9/6.9 MB 7.8 MB/s eta 0:00:00 +Collecting pyang + Downloading pyang-2.5.3-py2.py3-none-any.whl (592 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 592.9/592.9 kB 6.8 MB/s eta 0:00:00 +Collecting regex + Downloading regex-2022.6.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (764 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 764.9/764.9 kB 2.2 MB/s eta 0:00:00 +Requirement already satisfied: six in /usr/lib/python3/dist-packages (from pyangbind) (1.14.0) +Building wheels for collected packages: pyangbind + Building wheel for pyangbind (setup.py): started + Building wheel for pyangbind (setup.py): finished with status 'done' + Created wheel for pyangbind: filename=pyangbind-0.8.1-py3-none-any.whl size=47761 sha256=5f0d027b2830fa98c3e5c263a6ebd47e5a84b3ed70a8dab32f0842f3a84f4d97 + Stored in directory: /root/.cache/pip/wheels/0c/fb/5a/3d09fc1fae9987036f767b8aa0076ac7f91ce4cd952de3f49a +Successfully built pyangbind +Installing collected packages: verboselogs, enum34, bitarray, regex, python-magic, lxml, pyang, pyangbind +Successfully installed bitarray-2.5.1 enum34-1.1.10 lxml-4.9.0 pyang-2.5.3 pyangbind-0.8.1 python-magic-0.4.27 regex-2022.6.2 verboselogs-1.7 +WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv +Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + python3-osm-im python3-osmclient +0 upgraded, 2 newly installed, 0 to remove and 21 not upgraded. +Need to get 256 kB of archives. +After this operation, 8304 kB of additional disk space will be used. +Get:1 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable/IM amd64 python3-osm-im all 11.0.3+g2aa4f3e-1 [188 kB] +Get:2 https://osm-download.etsi.org/repository/osm/debian/ReleaseELEVEN stable/osmclient amd64 python3-osmclient all 11.0.3+g3152c07-1 [68.6 kB] +Fetched 256 kB in 0s (684 kB/s) +Selecting previously unselected package python3-osm-im. +(Reading database ... 71431 files and directories currently installed.) +Preparing to unpack .../python3-osm-im_11.0.3+g2aa4f3e-1_all.deb ... +Unpacking python3-osm-im (11.0.3+g2aa4f3e-1) ... +Selecting previously unselected package python3-osmclient. +Preparing to unpack .../python3-osmclient_11.0.3+g3152c07-1_all.deb ... +Unpacking python3-osmclient (11.0.3+g3152c07-1) ... +Setting up python3-osmclient (11.0.3+g3152c07-1) ... +Setting up python3-osm-im (11.0.3+g2aa4f3e-1) ... +Defaulting to user installation because normal site-packages is not writeable +Collecting bitarray==2.3.5 + Downloading bitarray-2.3.5.tar.gz (88 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 88.4/88.4 kB 2.4 MB/s eta 0:00:00 + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' +Requirement already satisfied: enum34==1.1.10 in /usr/local/lib/python3.8/dist-packages (from -r /usr/lib/python3/dist-packages/osm_im/requirements.txt (line 19)) (1.1.10) +Collecting lxml==4.7.1 + Downloading lxml-4.7.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (6.9 MB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.9/6.9 MB 6.0 MB/s eta 0:00:00 +Collecting pyang==2.5.2 + Downloading pyang-2.5.2-py2.py3-none-any.whl (595 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 595.5/595.5 kB 5.6 MB/s eta 0:00:00 +Requirement already satisfied: pyangbind==0.8.1 in /usr/local/lib/python3.8/dist-packages (from -r /usr/lib/python3/dist-packages/osm_im/requirements.txt (line 29)) (0.8.1) +Collecting pyyaml==5.4.1 + Downloading PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl (662 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 662.4/662.4 kB 5.5 MB/s eta 0:00:00 +Collecting regex==2021.11.10 + Downloading regex-2021.11.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (764 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 764.7/764.7 kB 7.1 MB/s eta 0:00:00 +Collecting six==1.16.0 + Downloading six-1.16.0-py2.py3-none-any.whl (11 kB) +Building wheels for collected packages: bitarray + Building wheel for bitarray (setup.py): started + Building wheel for bitarray (setup.py): finished with status 'done' + Created wheel for bitarray: filename=bitarray-2.3.5-cp38-cp38-linux_x86_64.whl size=188767 sha256=5fad29de4bee74cfc72ef13d88d800f1746a5520b83443edfafba7b7efcb6879 + Stored in directory: /home/ubuntu/.cache/pip/wheels/94/69/4b/830f24f80f3064bf446eb37eb441d7c1af74eda281bc2d9d03 +Successfully built bitarray +Installing collected packages: regex, bitarray, six, pyyaml, lxml, pyang +ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. +launchpadlib 1.10.13 requires testresources, which is not installed. +Successfully installed bitarray-2.3.5 lxml-4.7.1 pyang-2.5.2 pyyaml-5.4.1 regex-2021.11.10 six-1.16.0 +Reading package lists... +Building dependency tree... +Reading state information... +The following additional packages will be installed: + curl libcurl4 libssl1.1 +Suggested packages: + libcurl4-doc libidn11-dev libkrb5-dev libldap2-dev librtmp-dev libssh2-1-dev + pkg-config libssl-doc +The following NEW packages will be installed: + libcurl4-openssl-dev libssl-dev +The following packages will be upgraded: + curl libcurl4 libssl1.1 +3 upgraded, 2 newly installed, 0 to remove and 18 not upgraded. +Need to get 3623 kB of archives. +After this operation, 9552 kB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libssl1.1 amd64 1.1.1f-1ubuntu2.15 [1321 kB] +Get:2 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 curl amd64 7.68.0-1ubuntu2.12 [161 kB] +Get:3 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libcurl4 amd64 7.68.0-1ubuntu2.12 [235 kB] +Get:4 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libcurl4-openssl-dev amd64 7.68.0-1ubuntu2.12 [322 kB] +Get:5 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libssl-dev amd64 1.1.1f-1ubuntu2.15 [1584 kB] +Preconfiguring packages ... +Fetched 3623 kB in 1s (3001 kB/s) +(Reading database ... 71519 files and directories currently installed.) +Preparing to unpack .../libssl1.1_1.1.1f-1ubuntu2.15_amd64.deb ... +Unpacking libssl1.1:amd64 (1.1.1f-1ubuntu2.15) over (1.1.1f-1ubuntu2.13) ... +Preparing to unpack .../curl_7.68.0-1ubuntu2.12_amd64.deb ... +Unpacking curl (7.68.0-1ubuntu2.12) over (7.68.0-1ubuntu2.11) ... +Preparing to unpack .../libcurl4_7.68.0-1ubuntu2.12_amd64.deb ... +Unpacking libcurl4:amd64 (7.68.0-1ubuntu2.12) over (7.68.0-1ubuntu2.11) ... +Selecting previously unselected package libcurl4-openssl-dev:amd64. +Preparing to unpack .../libcurl4-openssl-dev_7.68.0-1ubuntu2.12_amd64.deb ... +Unpacking libcurl4-openssl-dev:amd64 (7.68.0-1ubuntu2.12) ... +Selecting previously unselected package libssl-dev:amd64. +Preparing to unpack .../libssl-dev_1.1.1f-1ubuntu2.15_amd64.deb ... +Unpacking libssl-dev:amd64 (1.1.1f-1ubuntu2.15) ... +Setting up libssl1.1:amd64 (1.1.1f-1ubuntu2.15) ... +Setting up libssl-dev:amd64 (1.1.1f-1ubuntu2.15) ... +Setting up libcurl4:amd64 (7.68.0-1ubuntu2.12) ... +Setting up curl (7.68.0-1ubuntu2.12) ... +Setting up libcurl4-openssl-dev:amd64 (7.68.0-1ubuntu2.12) ... +Processing triggers for man-db (2.9.1-1) ... +Processing triggers for libc-bin (2.31-0ubuntu9.9) ... +Defaulting to user installation because normal site-packages is not writeable +Collecting certifi==2021.10.8 + Downloading certifi-2021.10.8-py2.py3-none-any.whl (149 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 149.2/149.2 kB 3.5 MB/s eta 0:00:00 +Collecting charset-normalizer==2.0.10 + Downloading charset_normalizer-2.0.10-py3-none-any.whl (39 kB) +Collecting click==8.0.3 + Downloading click-8.0.3-py3-none-any.whl (97 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.5/97.5 kB 6.8 MB/s eta 0:00:00 +Collecting idna==3.3 + Downloading idna-3.3-py3-none-any.whl (61 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.2/61.2 kB 1.9 MB/s eta 0:00:00 +Collecting jinja2==3.0.3 + Downloading Jinja2-3.0.3-py3-none-any.whl (133 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.6/133.6 kB 12.1 MB/s eta 0:00:00 +Collecting markupsafe==2.0.1 + Downloading MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (30 kB) +Collecting packaging==21.3 + Downloading packaging-21.3-py3-none-any.whl (40 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.8/40.8 kB 1.2 MB/s eta 0:00:00 +Collecting prettytable==3.0.0 + Downloading prettytable-3.0.0-py3-none-any.whl (24 kB) +Collecting pycurl==7.44.1 + Downloading pycurl-7.44.1.tar.gz (227 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 227.6/227.6 kB 9.9 MB/s eta 0:00:00 + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' +Collecting pyparsing==3.0.6 + Downloading pyparsing-3.0.6-py3-none-any.whl (97 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.6/97.6 kB 7.3 MB/s eta 0:00:00 +Collecting python-magic==0.4.24 + Downloading python_magic-0.4.24-py2.py3-none-any.whl (12 kB) +Requirement already satisfied: pyyaml==5.4.1 in ./.local/lib/python3.8/site-packages (from -r /usr/lib/python3/dist-packages/osmclient/requirements.txt (line 39)) (5.4.1) +Collecting requests==2.27.1 + Downloading requests-2.27.1-py2.py3-none-any.whl (63 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.1/63.1 kB 3.1 MB/s eta 0:00:00 +Collecting urllib3==1.26.8 + Downloading urllib3-1.26.8-py2.py3-none-any.whl (138 kB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 138.7/138.7 kB 5.9 MB/s eta 0:00:00 +Requirement already satisfied: verboselogs==1.7 in /usr/local/lib/python3.8/dist-packages (from -r /usr/lib/python3/dist-packages/osmclient/requirements.txt (line 45)) (1.7) +Collecting wcwidth==0.2.5 + Downloading wcwidth-0.2.5-py2.py3-none-any.whl (30 kB) +Building wheels for collected packages: pycurl + Building wheel for pycurl (setup.py): started + Building wheel for pycurl (setup.py): finished with status 'done' + Created wheel for pycurl: filename=pycurl-7.44.1-cp38-cp38-linux_x86_64.whl size=322265 sha256=db30820dccde0dd85bb83a1046618f1bb90d5fd8ef9f6569cf550326a59c0204 + Stored in directory: /home/ubuntu/.cache/pip/wheels/a1/7e/55/e76d883b865ed83a76f1a0dc53af308f522db374be56d27909 +Successfully built pycurl +Installing collected packages: wcwidth, certifi, urllib3, python-magic, pyparsing, pycurl, prettytable, markupsafe, idna, click, charset-normalizer, requests, packaging, jinja2 + WARNING: The script normalizer is installed in '/home/ubuntu/.local/bin' which is not on PATH. + Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. +Successfully installed certifi-2021.10.8 charset-normalizer-2.0.10 click-8.0.3 idna-3.3 jinja2-3.0.3 markupsafe-2.0.1 packaging-21.3 prettytable-3.0.0 pycurl-7.44.1 pyparsing-3.0.6 python-magic-0.4.24 requests-2.27.1 urllib3-1.26.8 wcwidth-0.2.5 + +OSM client installed +OSM client assumes that OSM host is running in localhost (127.0.0.1). +In case you want to interact with a different OSM host, you will have to configure this env variable in your .bashrc file: + export OSM_HOSTNAME= +Track osmclient osmclient_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656515891&event=osmclient&operation=osmclient_ok&value=&comment=&tags= +Checking OSM health state... + +Bootstraping... 1 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +2 of 6 statefulsets starting: + mongodb-k8s 0/1 + prometheus 0/1 + + +Bootstraping... 2 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +2 of 6 statefulsets starting: + mongodb-k8s 0/1 + prometheus 0/1 + + +Bootstraping... 3 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +2 of 6 statefulsets starting: + mongodb-k8s 0/1 + prometheus 0/1 + + +Bootstraping... 4 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +2 of 6 statefulsets starting: + mongodb-k8s 0/1 + prometheus 0/1 + + +Bootstraping... 5 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +2 of 6 statefulsets starting: + mongodb-k8s 0/1 + prometheus 0/1 + + +Bootstraping... 6 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +2 of 6 statefulsets starting: + mongodb-k8s 0/1 + prometheus 0/1 + + +Bootstraping... 7 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +2 of 6 statefulsets starting: + mongodb-k8s 0/1 + prometheus 0/1 + + +Bootstraping... 8 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +2 of 6 statefulsets starting: + mongodb-k8s 0/1 + prometheus 0/1 + + +Bootstraping... 9 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +2 of 6 statefulsets starting: + mongodb-k8s 0/1 + prometheus 0/1 + + +Bootstraping... 10 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +2 of 6 statefulsets starting: + mongodb-k8s 0/1 + prometheus 0/1 + + +Bootstraping... 11 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +2 of 6 statefulsets starting: + mongodb-k8s 0/1 + prometheus 0/1 + + +Bootstraping... 12 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +2 of 6 statefulsets starting: + mongodb-k8s 0/1 + prometheus 0/1 + + +Bootstraping... 13 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +2 of 6 statefulsets starting: + mongodb-k8s 0/1 + prometheus 0/1 + + +Bootstraping... 14 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +2 of 6 statefulsets starting: + mongodb-k8s 0/1 + prometheus 0/1 + + +Bootstraping... 15 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +2 of 6 statefulsets starting: + mongodb-k8s 0/1 + prometheus 0/1 + + +Bootstraping... 16 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 17 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 18 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 19 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 20 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 21 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 22 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 23 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 24 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 25 attempts of 84 +2 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + + +Bootstraping... 26 attempts of 84 +1 of 9 deployments starting: + lcm 0/1 0 + + +Bootstraping... 27 attempts of 84 +2 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + + +Bootstraping... 28 attempts of 84 +2 of 9 deployments starting: + lcm 0/1 0 + ro 0/1 0 + + +Bootstraping... 29 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 30 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 31 attempts of 84 +3 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + + +Bootstraping... 32 attempts of 84 +2 of 9 deployments starting: + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 33 attempts of 84 +3 of 9 deployments starting: + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 34 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 35 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 36 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +===> Successful checks: 1/24 +Bootstraping... 1 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 2 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 3 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 4 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 5 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 6 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 7 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 8 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 9 attempts of 84 +3 of 9 deployments starting: + lcm 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 10 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 11 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 12 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 13 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 14 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 15 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 16 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 17 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 18 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 19 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 20 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 21 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 22 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 23 attempts of 84 +3 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + ro 0/1 0 + + +Bootstraping... 24 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 25 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 26 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 27 attempts of 84 +3 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + + +Bootstraping... 28 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 29 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 30 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 31 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 32 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 33 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 34 attempts of 84 +3 of 9 deployments starting: + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 35 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 36 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 37 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 38 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 39 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 40 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 41 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 42 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 43 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 44 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 45 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 46 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 47 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 48 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 49 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 50 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 51 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 52 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 53 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 54 attempts of 84 +3 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + ro 0/1 0 + + +Bootstraping... 55 attempts of 84 +3 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + ro 0/1 0 + + +Bootstraping... 56 attempts of 84 +2 of 9 deployments starting: + lcm 0/1 0 + ro 0/1 0 + + +Bootstraping... 57 attempts of 84 +2 of 9 deployments starting: + lcm 0/1 0 + ro 0/1 0 + + +Bootstraping... 58 attempts of 84 +1 of 9 deployments starting: + lcm 0/1 0 + + +Bootstraping... 59 attempts of 84 +1 of 9 deployments starting: + lcm 0/1 0 + + +Bootstraping... 60 attempts of 84 +1 of 9 deployments starting: + lcm 0/1 0 + + +Bootstraping... 61 attempts of 84 +1 of 9 deployments starting: + lcm 0/1 0 + + +Bootstraping... 62 attempts of 84 +1 of 9 deployments starting: + lcm 0/1 0 + + +Bootstraping... 63 attempts of 84 +1 of 9 deployments starting: + lcm 0/1 0 + + +Bootstraping... 64 attempts of 84 +1 of 9 deployments starting: + lcm 0/1 0 + + +Bootstraping... 65 attempts of 84 +1 of 9 deployments starting: + lcm 0/1 0 + +===> Successful checks: 24/24 +SYSTEM IS READY +Track healthchecks after_healthcheck_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656516598&event=healthchecks&operation=after_healthcheck_ok&value=&comment=&tags= +875f163f-abfe-4dee-968f-62c12d2323f6 +3920eeca-eb30-4a60-bd43-552a37b4351d +Track final_ops add_local_k8scluster_ok: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656516604&event=final_ops&operation=add_local_k8scluster_ok&value=&comment=&tags= +Track end end: https://osm.etsi.org/InstallLog.php?&installation_id=1656514104-XydIoxsPFxDU1fLG&local_ts=1656516604&event=end&operation=end&value=&comment=&tags= +/etc/osm +/etc/osm/docker +/etc/osm/docker/ro.env +/etc/osm/docker/lcm.env +/etc/osm/docker/ro-db.env +/etc/osm/docker/pol.env +/etc/osm/docker/mon.env +/etc/osm/docker/nbi.env +/etc/osm/docker/keystone-db.env +/etc/osm/docker/cluster-config.yaml +/etc/osm/docker/metallb-config.yaml +/etc/osm/docker/osm_pods +/etc/osm/docker/osm_pods/keystone.yaml +/etc/osm/docker/osm_pods/lcm.yaml +/etc/osm/docker/osm_pods/ng-ui.yaml +/etc/osm/docker/osm_pods/ro.yaml +/etc/osm/docker/osm_pods/kafka.yaml +/etc/osm/docker/osm_pods/mon.yaml +/etc/osm/docker/osm_pods/prometheus.yaml +/etc/osm/docker/osm_pods/mysql.yaml +/etc/osm/docker/osm_pods/zookeeper.yaml +/etc/osm/docker/osm_pods/nbi.yaml +/etc/osm/docker/osm_pods/grafana.yaml +/etc/osm/docker/osm_pods/pol.yaml +/etc/osm/docker/keystone.env + +DONE diff --git a/_tmp/custom-osm-lcm/procedure.md b/_tmp/custom-osm-lcm/procedure.md new file mode 100644 index 0000000..3beb950 --- /dev/null +++ b/_tmp/custom-osm-lcm/procedure.md @@ -0,0 +1,287 @@ +Custom OSM LCM image +-------------------- +> what a schlep! + +Below are the steps to build and deploy a custom OSM LCM Docker image. +Mostly what OSM devs told Gabriele to do, plus some guesswork. Make +sure to keep hydrated b/c the procedure takes a few hours(1) and will +make you sweat alot :-) + +(1) my hardware: MacBook Pro 13'', 2 GHz Dual-Core Intel Core i5, +8 GB RAM. Make sure to shut down every app since the below procedure +needs alot of horse power to run decently. + +Notice at the moment we still can't get all the steps below to work. +Details [over here][fails]. + + +### Build OSM 11 VM + +We'll build and deploy our custom LCM image in an OSM release 11 VM. +Not explicitly mentioned by the OSM devs, but I don't see any other +easy way of doing that given I've got no clue about how they set up +their dev env. + +```console +$ multipass launch --name osm11 --cpus 2 --mem 6G --disk 40G 20.04 +$ multipass shell osm11 +% wget https://osm-download.etsi.org/ftp/osm-11.0-eleven/install_osm.sh +% chmod +x install_osm.sh +% ./install_osm.sh 2>&1 | tee install.log +``` + +Make sure to check you've ended up with a functional OSM cluster before +moving on---this includes *waiting for all the OSM pods to be up and +running*. Then shutdown and restart your freshly minted OSM VM. + +See: + +- https://osm.etsi.org/docs/user-guide/latest/03-installing-osm.html + + +### Set up source workspace + +OSM devs say: + +> Clone these repositories in your workspace on OSM host: +> cd workspace + +So that probably means create a `workspace` directory in your home on +the OSM VM you've just built... + + +```console +$ multipass shell osm11 +% mkdir workspace && cd workspace +``` + +Cloning repos + +```console +% git clone https://osm.etsi.org/gerrit/osm/LCM +% git clone https://osm.etsi.org/gerrit/osm/N2VC +% git clone https://osm.etsi.org/gerrit/osm/devops +% git clone https://osm.etsi.org/gerrit/osm/common +% git clone https://osm.etsi.org/gerrit/osm/IM +% git clone https://osm.etsi.org/gerrit/osm/RO +% git clone https://osm.etsi.org/gerrit/osm/NBI +``` + +Notice the RO and NBI repos weren't in the original instructions +they gave us, but then their build command requires them. So we +clone those two as well. + +Setting up OSM's git commit hook in each repo + + +```console +% curl https://osm.etsi.org/gerrit/tools/hooks/commit-msg > commit-msg +% chmod +x commit-msg +% for r in IM LCM N2VC NBI RO common devops; do cp commit-msg $r/.git/hooks/; done +``` + + +### Install additional deps + +OSM devs mentioned you've got to install QHttp too. + +```console +% devops/tools/local-build.sh --install-qhttpd +Attempting to open the browser failed, but the server might still work +This might happen if you're running this with sudo, a none graphical session, are lacking xdg-desktop portal support or have disabled the desktop interface +Attempting to serve files from /home/ubuntu/snap/qhttp/common, press control + c to exit +Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ... +``` + +Hit `Ctrl+c` to exit. + + +### Build LCM image + +First you've got to build the artifacts that make up the LCM image + +```console +% devops/tools/local-build.sh --module common,IM,N2VC,LCM,NBI stage-2 +``` + +Notice the original build command they gave us included RO too: + +```console +% devops/tools/local-build.sh --module common,IM,N2VC,RO,LCM,NBI stage-2 +``` + +but it looks like trying to build RO is a lost cause. Details +[over here][fails]. So we skip building RO for the moment. + +Then build a Docker image from the above components. The image name is +`opensourcemano/lcm:devel`. + +```console +% devops/tools/local-build.sh --module LCM stage-3 +``` + + +### Deploy LCM image + +Finally, patch your OSM deployment to use the dev image you've just +built: + +```console +% kubectl -n osm patch deployment lcm --patch '{"spec": {"template": {"spec": {"containers": [{"name": "lcm", "image": "opensourcemano/lcm:devel"}]}}}}' +deployment.apps/lcm patched +``` + +And as a sanity check: + +```console +% kubectl -n osm get deployment lcm -o yaml | grep 'image: open' + image: opensourcemano/lcm:devel + +% kubectl -n osm get pod | grep lcm +lcm-7cf9644d9b-zthgf 1/1 Running 0 2m33s +``` + + +### NS instance test + +Let's make sure the custom LCM image plays well with the rest of +OSM services in the cluster. We're going to add some repos, upload +packages and then create an NS instance using those packages. + +But first, let's configure the KNF infra for an isolated Kubernetes +cluster + +```console +% osm vim-create --name mylocation1 --user u --password p --tenant p \ +> --account_type dummy --auth_url http://localhost/dummy +c8779fff-ba39-4cbc-9259-48d02e374dc2 + +% osm k8scluster-add cluster --creds .kube/config --vim mylocation1 \ +> --k8s-nets '{k8s_net1: null}' --version "v1.15.12" \ +> --description="Isolated K8s cluster at mylocation1" +f68c5f89-901a-4bb7-bfdd-1c8a2a04bf10 +``` + +Adding K8s repos + +```console +% osm repo-add --type helm-chart --description "Bitnami repo" bitnami https://charts.bitnami.com/bitnami +fe28ae36-4400-4821-bd6a-442cbb379568 + +% osm repo-add --type helm-chart --description "Cetic repo" cetic https://cetic.github.io/helm-charts +26a3b21b-6e73-4029-9a1c-5393777e67ea + +% osm repo-add --type helm-chart --description "Elastic repo" elastic https://helm.elastic.co +19f21297-6988-46b9-933b-1479c0516bdb +``` + +Now upload the OSM OpenLDAP packages we're going to use to create NS +instances. To do that, open a terminal in this repo's root dir, then: + +```console +$ cd _tmp/osm-pkgs +$ multipass mount ./ osm11:/mnt/osm-pkgs +$ multipass shell osm11 +% cd /mnt/osm-pkgs + +% osm nfpkg-create openldap_knf.tar.gz +3540cf89-c764-425d-b771-62c9dd155ab8 + +% osm nspkg-create openldap_ns.tar.gz +1c803c06-33d8-40ac-96f7-7d63a647a846 +``` + +Give OSM a couple of minutes to process all that stuff. Then log into +the OSM Web UI. You should be able to see: VIM account, K8s cluster, +the three repos we added as well as the NS and VNF packages. + +After checking everything is hunky-dory, go back to the OSM VM shell. +Time to create that LDAP NS instance we've all been waiting for. + +```console +% osm ns-create --ns_name ldap --nsd_name openldap_ns --vim_account mylocation1 +5d5d5028-0e4a-4a76-906a-cd4a3ad1d210 +``` + +Again wait a few minutes. Eventually the OSM Web UI should reflect +the OpenLDAP NS instance. If you go back to the shell, you can check +there's a new namespace in the K8s cluster with a brand new OpenLDAP +pod in it: + +```console +% kubectl get ns +NAME STATUS AGE +94c3f4fb-304f-4290-ab95-0319d84b48b6 Active 2m12s +... +osm Active 45h + +% kubectl -n 94c3f4fb-304f-4290-ab95-0319d84b48b6 get pod +NAME READY STATUS RESTARTS AGE +stable-openldap-1-2-7-0084381388-6f658b9545-q7k5m 1/1 Running 0 2m15s + +% kubectl -n 94c3f4fb-304f-4290-ab95-0319d84b48b6 logs stable-openldap-1-2-7-0084381388-6f658b9545-q7k5m +... +Start OpenLDAP... +... +First start is done... +... +``` + +Happy days? + + +### Grief down the line? + +Notice we didn't build RO earlier. While we manage to build and deploy +LCM in the end, the LCM image might have some missing components, i.e. +those the build process supposedly fetched from RO. So we've got to +test the custom image thoroughly to make sure it works for our use +case. + + +### From the horse's mouth + +For the record, these are the actual instructions Gabriele got from +the OSM devs. Copy-paste from the chat, original text, no edits. + +After installing OSM via the script on the appropriate VM, this is +how to build the LCM image: + +1. Clone these repositories in your workspace on OSM host: + +cd workspace + +git clone "https://osm.etsi.org/gerrit/osm/LCM" && (cd "LCM" && curl https://osm.etsi.org/gerrit/tools/hooks/commit-msg > .git/hooks/commit-msg ; chmod +x .git/hooks/commit-msg) + +git clone "https://osm.etsi.org/gerrit/osm/N2VC" && (cd "N2VC" && curl https://osm.etsi.org/gerrit/tools/hooks/commit-msg > .git/hooks/commit-msg ; chmod +x .git/hooks/commit-msg) + +git clone "https://osm.etsi.org/gerrit/osm/devops" && (cd "devops" && curl https://osm.etsi.org/gerrit/tools/hooks/commit-msg > .git/hooks/commit-msg ; chmod +x .git/hooks/commit-msg) + +git clone "https://osm.etsi.org/gerrit/osm/common" && (cd "common" && curl https://osm.etsi.org/gerrit/tools/hooks/commit-msg > .git/hooks/commit-msg ; chmod +x .git/hooks/commit-msg) + +git clone "https://osm.etsi.org/gerrit/osm/IM" && (cd "IM" && curl https://osm.etsi.org/gerrit/tools/hooks/commit-msg > .git/hooks/commit-msg ; chmod +x .git/hooks/commit-msg) + + +2. Install HTTP server: + +devops/tools/local-build.sh --install-qhttpd + + +3. Build artifacts: + +devops/tools/local-build.sh --module common,IM,N2VC,RO,LCM,NBI stage-2 + + +4. Build image (this generates a “devel” tagged image using previous artifacts): + +devops/tools/local-build.sh --module LCM stage-3 + + +5. Patch deployment to use “devel” image: + +kubectl -n osm patch deployment lcm --patch '{"spec": {"template": {"spec": {"containers": [{"name": "lcm", "image": "opensourcemano/lcm:devel"}]}}}}' + + + + +[fails]: ./failed-steps.md diff --git a/_tmp/osm-install-issues/README.md b/_tmp/osm-install-issues/README.md new file mode 100644 index 0000000..cfcb86f --- /dev/null +++ b/_tmp/osm-install-issues/README.md @@ -0,0 +1,46 @@ +OSM installation issues +----------------------- +> ...documenting the struggle for posterity. + +I've captured some of the OSM install sessions that resulted in broken +installs and parked them in this dir just in case I ran into the same +issues again I've got an idea how to fix stuff quickly. One sore point +was the PGP keys---quite a few of them. Here's an example of how to fix +the K8s ones, the others are similar: + +- https://stackoverflow.com/questions/49877401 + +Also notice the install script was broken. See the `multipass*` and +`patched*` scripts in the `osm-install` dir. It looks like the OSM +guys fixed it though: + +- https://osm.etsi.org/gitlab/osm/devops/-/commit/fdbe776e9bb9e43f7d4dc0f8c023b93d258666e2 + + +### June 2022 Update + +So I rebuilt another OSM 10 VM at the beginning of Jun 2022. Here's +how + +```console +$ multipass launch --name osm --cpus 2 --mem 6G --disk 40G 18.04 +$ multipass shell osm +% wget https://osm-download.etsi.org/ftp/osm-10.0-ten/install_osm.sh +% chmod +x install_osm.sh +% ./install_osm.sh 2>&1 | tee install.log +% exit +``` + +The good news is that this time I didn't have to patch the install +script---yay! But...the `osm` client didn't install properly and it +looks like something else may be broken too. In fact, you can't run +the client b/c `pycurl` is missing and when logging into the UI I +couldn't manage to create repos and K8s clusters. Install log saved +to: + +- [broken-osm10.install-log.jun2022.log][jun2022-log] + + + + +[jun2022-log]: ./broken-osm10.install-log.jun2022.log \ No newline at end of file diff --git a/_tmp/osm-install-issues/broken-osm10.install-log.jun2022.log b/_tmp/osm-install-issues/broken-osm10.install-log.jun2022.log new file mode 100644 index 0000000..d5d06c2 --- /dev/null +++ b/_tmp/osm-install-issues/broken-osm10.install-log.jun2022.log @@ -0,0 +1,3688 @@ +Checking required packages: software-properties-common apt-transport-https +OK +Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease +Get:2 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB] +Get:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB] +Get:4 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease [4086 B] +Get:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB] +Get:6 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [8570 kB] +Get:7 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [2304 kB] +Get:8 http://archive.ubuntu.com/ubuntu bionic/universe Translation-en [4941 kB] +Get:9 http://security.ubuntu.com/ubuntu bionic-security/main Translation-en [401 kB] +Get:10 http://security.ubuntu.com/ubuntu bionic-security/restricted amd64 Packages [786 kB] +Get:11 http://security.ubuntu.com/ubuntu bionic-security/restricted Translation-en [108 kB] +Get:12 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [1212 kB] +Get:13 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [151 kB] +Get:14 http://archive.ubuntu.com/ubuntu bionic/multiverse Translation-en [108 kB] +Get:15 http://security.ubuntu.com/ubuntu bionic-security/universe Translation-en [279 kB] +Get:16 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [19.0 kB] +Get:17 http://security.ubuntu.com/ubuntu bionic-security/multiverse Translation-en [3836 B] +Get:18 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/devops amd64 Packages [482 B] +Get:19 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [2646 kB] +Get:20 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1826 kB] +Get:21 http://archive.ubuntu.com/ubuntu bionic-updates/universe Translation-en [396 kB] +Get:22 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [24.9 kB] +Get:23 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse Translation-en [6012 B] +Get:24 http://archive.ubuntu.com/ubuntu bionic-backports/main amd64 Packages [10.8 kB] +Get:25 http://archive.ubuntu.com/ubuntu bionic-backports/main Translation-en [5016 B] +Get:26 http://archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages [11.6 kB] +Get:27 http://archive.ubuntu.com/ubuntu bionic-backports/universe Translation-en [5864 B] +Fetched 24.1 MB in 5s (4497 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 http://security.ubuntu.com/ubuntu bionic-security InRelease +Hit:2 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:3 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 http://security.ubuntu.com/ubuntu bionic-security InRelease +Hit:2 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:3 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + osm-devops +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Need to get 724 kB of archives. +After this operation, 5550 kB of additional disk space will be used. +Get:1 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/devops amd64 osm-devops all 10.1.1-1 [724 kB] +Fetched 724 kB in 0s (2369 kB/s) +Selecting previously unselected package osm-devops. +(Reading database ... 60493 files and directories currently installed.) +Preparing to unpack .../osm-devops_10.1.1-1_all.deb ... +Unpacking osm-devops (10.1.1-1) ... +Setting up osm-devops (10.1.1-1) ... +Checking required packages: git wget curl tar +2022-06-16T11:22:46+02:00 INFO Waiting for automatic snapd restart... +jq 1.5+dfsg-1 from Michael Vogt (mvo) installed +## Thu Jun 16 11:23:01 CEST 2022 source: logging sourced +## Thu Jun 16 11:23:01 CEST 2022 source: config sourced +## Thu Jun 16 11:23:01 CEST 2022 source: container sourced +## Thu Jun 16 11:23:01 CEST 2022 source: git_functions sourced +The installation will do the following + 1. Install and configure LXD + 2. Install juju + 3. Install docker CE + 4. Disable swap space + 5. Install and initialize Kubernetes + as pre-requirements. + Do you want to proceed (Y/n)? y +Installing lightweight build of OSM +Checking required packages: snapd +* Applying /etc/sysctl.d/10-console-messages.conf ... +kernel.printk = 4 4 1 7 +* Applying /etc/sysctl.d/10-ipv6-privacy.conf ... +net.ipv6.conf.all.use_tempaddr = 2 +net.ipv6.conf.default.use_tempaddr = 2 +* Applying /etc/sysctl.d/10-kernel-hardening.conf ... +kernel.kptr_restrict = 1 +* Applying /etc/sysctl.d/10-link-restrictions.conf ... +fs.protected_hardlinks = 1 +fs.protected_symlinks = 1 +* Applying /etc/sysctl.d/10-lxd-inotify.conf ... +fs.inotify.max_user_instances = 1024 +* Applying /etc/sysctl.d/10-magic-sysrq.conf ... +kernel.sysrq = 176 +* Applying /etc/sysctl.d/10-network-security.conf ... +net.ipv4.conf.default.rp_filter = 1 +net.ipv4.conf.all.rp_filter = 1 +net.ipv4.tcp_syncookies = 1 +* Applying /etc/sysctl.d/10-ptrace.conf ... +kernel.yama.ptrace_scope = 1 +* Applying /etc/sysctl.d/10-zeropage.conf ... +vm.mmap_min_addr = 65536 +* Applying /usr/lib/sysctl.d/50-default.conf ... +net.ipv4.conf.all.promote_secondaries = 1 +net.core.default_qdisc = fq_codel +* Applying /etc/sysctl.d/60-lxd-production.conf ... +fs.inotify.max_queued_events = 1048576 +fs.inotify.max_user_instances = 1048576 +fs.inotify.max_user_watches = 1048576 +vm.max_map_count = 262144 +kernel.dmesg_restrict = 1 +net.ipv4.neigh.default.gc_thresh3 = 8192 +net.ipv6.neigh.default.gc_thresh3 = 8192 +sysctl: setting key "net.core.bpf_jit_limit": Invalid argument +net.core.bpf_jit_limit = 3000000000 +kernel.keys.maxkeys = 2000 +kernel.keys.maxbytes = 2000000 +* Applying /etc/sysctl.d/99-cloudimg-ipv6.conf ... +net.ipv6.conf.all.use_tempaddr = 0 +net.ipv6.conf.default.use_tempaddr = 0 +* Applying /etc/sysctl.d/99-sysctl.conf ... +* Applying /etc/sysctl.conf ... +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following packages will be REMOVED: + liblxc-common* liblxc1* lxcfs* lxd* lxd-client* +0 upgraded, 0 newly installed, 5 to remove and 0 not upgraded. +After this operation, 34.2 MB disk space will be freed. +(Reading database ... 61629 files and directories currently installed.) +Removing lxd (3.0.3-0ubuntu1~18.04.2) ... +Removing lxd dnsmasq configuration +Removing lxcfs (3.0.3-0ubuntu1~18.04.2) ... +Removing lxd-client (3.0.3-0ubuntu1~18.04.2) ... +Removing liblxc-common (3.0.3-0ubuntu1~18.04.1) ... +Removing liblxc1 (3.0.3-0ubuntu1~18.04.1) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... +Processing triggers for libc-bin (2.27-3ubuntu1.6) ... +(Reading database ... 61383 files and directories currently installed.) +Purging configuration files for liblxc-common (3.0.3-0ubuntu1~18.04.1) ... +Purging configuration files for lxd (3.0.3-0ubuntu1~18.04.2) ... +Purging configuration files for lxcfs (3.0.3-0ubuntu1~18.04.2) ... +Processing triggers for systemd (237-3ubuntu10.53) ... +Processing triggers for ureadahead (0.100.0-21) ... +lxd (4.0/stable) 4.0.9-8e2046b from Canonical** installed +To start your first container, try: lxc launch ubuntu:20.04 +Or for a virtual machine: lxc launch ubuntu:20.04 --vm + +Installing Docker CE ... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +ca-certificates is already the newest version (20211016~18.04.1). +ca-certificates set to manually installed. +software-properties-common is already the newest version (0.96.24.32.18). +software-properties-common set to manually installed. +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following NEW packages will be installed: + apt-transport-https +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Need to get 4348 B of archives. +After this operation, 154 kB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 apt-transport-https all 1.6.14 [4348 B] +Fetched 4348 B in 0s (22.6 kB/s) +Selecting previously unselected package apt-transport-https. +(Reading database ... 61366 files and directories currently installed.) +Preparing to unpack .../apt-transport-https_1.6.14_all.deb ... +Unpacking apt-transport-https (1.6.14) ... +Setting up apt-transport-https (1.6.14) ... +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 http://security.ubuntu.com/ubuntu bionic-security InRelease +Get:2 https://download.docker.com/linux/ubuntu bionic InRelease [64.4 kB] +Hit:3 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic InRelease +Get:5 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages [26.4 kB] +Hit:6 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:7 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Fetched 90.9 kB in 1s (138 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following additional packages will be installed: + containerd.io docker-ce-cli docker-ce-rootless-extras docker-scan-plugin + libltdl7 pigz +Suggested packages: + aufs-tools cgroupfs-mount | cgroup-lite +Recommended packages: + slirp4netns +The following NEW packages will be installed: + containerd.io docker-ce docker-ce-cli docker-ce-rootless-extras + docker-scan-plugin libltdl7 pigz +0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded. +Need to get 101 MB of archives. +After this operation, 422 MB of additional disk space will be used. +Get:1 https://download.docker.com/linux/ubuntu bionic/stable amd64 containerd.io amd64 1.6.6-1 [28.1 MB] +Get:2 http://archive.ubuntu.com/ubuntu bionic/universe amd64 pigz amd64 2.4-1 [57.4 kB] +Get:3 http://archive.ubuntu.com/ubuntu bionic/main amd64 libltdl7 amd64 2.4.6-2 [38.8 kB] +Get:4 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce-cli amd64 5:20.10.17~3-0~ubuntu-bionic [40.6 MB] +Get:5 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce amd64 5:20.10.17~3-0~ubuntu-bionic [21.0 MB] +Get:6 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce-rootless-extras amd64 5:20.10.17~3-0~ubuntu-bionic [8163 kB] +Get:7 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-scan-plugin amd64 0.17.0~ubuntu-bionic [3521 kB] +Fetched 101 MB in 3s (36.3 MB/s) +Selecting previously unselected package pigz. +(Reading database ... 61370 files and directories currently installed.) +Preparing to unpack .../0-pigz_2.4-1_amd64.deb ... +Unpacking pigz (2.4-1) ... +Selecting previously unselected package containerd.io. +Preparing to unpack .../1-containerd.io_1.6.6-1_amd64.deb ... +Unpacking containerd.io (1.6.6-1) ... +Selecting previously unselected package docker-ce-cli. +Preparing to unpack .../2-docker-ce-cli_5%3a20.10.17~3-0~ubuntu-bionic_amd64.deb ... +Unpacking docker-ce-cli (5:20.10.17~3-0~ubuntu-bionic) ... +Selecting previously unselected package docker-ce. +Preparing to unpack .../3-docker-ce_5%3a20.10.17~3-0~ubuntu-bionic_amd64.deb ... +Unpacking docker-ce (5:20.10.17~3-0~ubuntu-bionic) ... +Selecting previously unselected package docker-ce-rootless-extras. +Preparing to unpack .../4-docker-ce-rootless-extras_5%3a20.10.17~3-0~ubuntu-bionic_amd64.deb ... +Unpacking docker-ce-rootless-extras (5:20.10.17~3-0~ubuntu-bionic) ... +Selecting previously unselected package docker-scan-plugin. +Preparing to unpack .../5-docker-scan-plugin_0.17.0~ubuntu-bionic_amd64.deb ... +Unpacking docker-scan-plugin (0.17.0~ubuntu-bionic) ... +Selecting previously unselected package libltdl7:amd64. +Preparing to unpack .../6-libltdl7_2.4.6-2_amd64.deb ... +Unpacking libltdl7:amd64 (2.4.6-2) ... +Setting up containerd.io (1.6.6-1) ... +Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service. +Setting up docker-ce-rootless-extras (5:20.10.17~3-0~ubuntu-bionic) ... +Setting up docker-scan-plugin (0.17.0~ubuntu-bionic) ... +Setting up libltdl7:amd64 (2.4.6-2) ... +Setting up docker-ce-cli (5:20.10.17~3-0~ubuntu-bionic) ... +Setting up pigz (2.4-1) ... +Setting up docker-ce (5:20.10.17~3-0~ubuntu-bionic) ... +Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service. +Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket. +Processing triggers for libc-bin (2.27-3ubuntu1.6) ... +Processing triggers for systemd (237-3ubuntu10.53) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... +Processing triggers for ureadahead (0.100.0-21) ... +Adding user to group 'docker' +... restarted Docker service +Client: Docker Engine - Community + Version: 20.10.17 + API version: 1.41 + Go version: go1.17.11 + Git commit: 100c701 + Built: Mon Jun 6 23:02:56 2022 + OS/Arch: linux/amd64 + Context: default + Experimental: true + +Server: Docker Engine - Community + Engine: + Version: 20.10.17 + API version: 1.41 (minimum version 1.12) + Go version: go1.17.11 + Git commit: a89b842 + Built: Mon Jun 6 23:01:02 2022 + OS/Arch: linux/amd64 + Experimental: false + containerd: + Version: 1.6.6 + GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1 + runc: + Version: 1.1.2 + GitCommit: v1.1.2-0-ga916309 + docker-init: + Version: 0.19.0 + GitCommit: de40ad0 +... Docker CE installation done +Creating folders for installation +Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:2 http://security.ubuntu.com/ubuntu bionic-security InRelease +Hit:3 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:6 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +apt-transport-https is already the newest version (1.6.14). +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 http://security.ubuntu.com/ubuntu bionic-security InRelease +Hit:2 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:3 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:6 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:7 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Get:5 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [9383 B] +Get:8 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 Packages [56.5 kB] +Fetched 65.9 kB in 1s (76.9 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:2 http://security.ubuntu.com/ubuntu bionic-security InRelease +Hit:3 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:5 http://archive.ubuntu.com/ubuntu bionic InRelease +Get:4 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [9383 B] +Hit:6 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:7 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Fetched 9383 B in 1s (12.4 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Installing Kubernetes Packages ... +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following additional packages will be installed: + conntrack cri-tools kubernetes-cni socat +The following NEW packages will be installed: + conntrack cri-tools kubeadm kubectl kubelet kubernetes-cni socat +0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded. +Need to get 74.6 MB of archives. +After this operation, 323 MB of additional disk space will be used. +Get:2 http://archive.ubuntu.com/ubuntu bionic/main amd64 conntrack amd64 1:1.4.4+snapshot20161117-6ubuntu2 [30.6 kB] +Get:1 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 cri-tools amd64 1.24.0-00 [12.2 MB] +Get:4 http://archive.ubuntu.com/ubuntu bionic/main amd64 socat amd64 1.7.3.2-2ubuntu2 [342 kB] +Get:3 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubernetes-cni amd64 0.8.7-00 [25.0 MB] +Get:5 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubelet amd64 1.23.3-00 [19.5 MB] +Get:6 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubectl amd64 1.23.3-00 [8929 kB] +Get:7 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubeadm amd64 1.23.3-00 [8580 kB] +Fetched 74.6 MB in 2s (29.9 MB/s) +Selecting previously unselected package conntrack. +(Reading database ... 61622 files and directories currently installed.) +Preparing to unpack .../0-conntrack_1%3a1.4.4+snapshot20161117-6ubuntu2_amd64.deb ... +Unpacking conntrack (1:1.4.4+snapshot20161117-6ubuntu2) ... +Selecting previously unselected package cri-tools. +Preparing to unpack .../1-cri-tools_1.24.0-00_amd64.deb ... +Unpacking cri-tools (1.24.0-00) ... +Selecting previously unselected package kubernetes-cni. +Preparing to unpack .../2-kubernetes-cni_0.8.7-00_amd64.deb ... +Unpacking kubernetes-cni (0.8.7-00) ... +Selecting previously unselected package socat. +Preparing to unpack .../3-socat_1.7.3.2-2ubuntu2_amd64.deb ... +Unpacking socat (1.7.3.2-2ubuntu2) ... +Selecting previously unselected package kubelet. +Preparing to unpack .../4-kubelet_1.23.3-00_amd64.deb ... +Unpacking kubelet (1.23.3-00) ... +Selecting previously unselected package kubectl. +Preparing to unpack .../5-kubectl_1.23.3-00_amd64.deb ... +Unpacking kubectl (1.23.3-00) ... +Selecting previously unselected package kubeadm. +Preparing to unpack .../6-kubeadm_1.23.3-00_amd64.deb ... +Unpacking kubeadm (1.23.3-00) ... +Setting up conntrack (1:1.4.4+snapshot20161117-6ubuntu2) ... +Setting up kubernetes-cni (0.8.7-00) ... +Setting up cri-tools (1.24.0-00) ... +Setting up socat (1.7.3.2-2ubuntu2) ... +Setting up kubelet (1.23.3-00) ... +Created symlink /etc/systemd/system/multi-user.target.wants/kubelet.service → /lib/systemd/system/kubelet.service. +Setting up kubectl (1.23.3-00) ... +Setting up kubeadm (1.23.3-00) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... + KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs" +kubelet set on hold. +kubeadm set on hold. +kubectl set on hold. +I0616 11:24:49.882192 10753 version.go:255] remote version is much newer: v1.24.1; falling back to: stable-1.23 +[init] Using Kubernetes version: v1.23.7 +[preflight] Running pre-flight checks +[preflight] Pulling images required for setting up a Kubernetes cluster +[preflight] This might take a minute or two, depending on the speed of your internet connection +[preflight] You can also perform this action in beforehand using 'kubeadm config images pull' +[certs] Using certificateDir folder "/etc/kubernetes/pki" +[certs] Generating "ca" certificate and key +[certs] Generating "apiserver" certificate and key +[certs] apiserver serving cert is signed for DNS names [kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local osm2] and IPs [10.96.0.1 192.168.64.22] +[certs] Generating "apiserver-kubelet-client" certificate and key +[certs] Generating "front-proxy-ca" certificate and key +[certs] Generating "front-proxy-client" certificate and key +[certs] Generating "etcd/ca" certificate and key +[certs] Generating "etcd/server" certificate and key +[certs] etcd/server serving cert is signed for DNS names [localhost osm2] and IPs [192.168.64.22 127.0.0.1 ::1] +[certs] Generating "etcd/peer" certificate and key +[certs] etcd/peer serving cert is signed for DNS names [localhost osm2] and IPs [192.168.64.22 127.0.0.1 ::1] +[certs] Generating "etcd/healthcheck-client" certificate and key +[certs] Generating "apiserver-etcd-client" certificate and key +[certs] Generating "sa" key and public key +[kubeconfig] Using kubeconfig folder "/etc/kubernetes" +[kubeconfig] Writing "admin.conf" kubeconfig file +[kubeconfig] Writing "kubelet.conf" kubeconfig file +[kubeconfig] Writing "controller-manager.conf" kubeconfig file +[kubeconfig] Writing "scheduler.conf" kubeconfig file +[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env" +[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml" +[kubelet-start] Starting the kubelet +[control-plane] Using manifest folder "/etc/kubernetes/manifests" +[control-plane] Creating static Pod manifest for "kube-apiserver" +[control-plane] Creating static Pod manifest for "kube-controller-manager" +[control-plane] Creating static Pod manifest for "kube-scheduler" +[etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests" +[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s +[apiclient] All control plane components are healthy after 10.521247 seconds +[upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace +[kubelet] Creating a ConfigMap "kubelet-config-1.23" in namespace kube-system with the configuration for the kubelets in the cluster +NOTE: The "kubelet-config-1.23" naming of the kubelet ConfigMap is deprecated. Once the UnversionedKubeletConfigMap feature gate graduates to Beta the default name will become just "kubelet-config". Kubeadm upgrade will handle this transition transparently. +[upload-certs] Skipping phase. Please see --upload-certs +[mark-control-plane] Marking the node osm2 as control-plane by adding the labels: [node-role.kubernetes.io/master(deprecated) node-role.kubernetes.io/control-plane node.kubernetes.io/exclude-from-external-load-balancers] +[mark-control-plane] Marking the node osm2 as control-plane by adding the taints [node-role.kubernetes.io/master:NoSchedule] +[bootstrap-token] Using token: tk7288.rgyc2cwzpwcgpi3n +[bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles +[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to get nodes +[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials +[bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token +[bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster +[bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace +[kubelet-finalize] Updating "/etc/kubernetes/kubelet.conf" to point to a rotatable kubelet client certificate and key +[addons] Applied essential addon: CoreDNS +[addons] Applied essential addon: kube-proxy + +Your Kubernetes control-plane has initialized successfully! + +To start using your cluster, you need to run the following as a regular user: + + mkdir -p $HOME/.kube + sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config + +Alternatively, if you are the root user, you can run: + + export KUBECONFIG=/etc/kubernetes/admin.conf + +You should now deploy a pod network to the cluster. +Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: + https://kubernetes.io/docs/concepts/cluster-administration/addons/ + +Then you can join any number of worker nodes by running the following on each as root: + +kubeadm join 192.168.64.22:6443 --token tk7288.rgyc2cwzpwcgpi3n \ + --discovery-token-ca-cert-hash sha256:e14f28f2822bd3672329697a551c08df6423e93a1a55a008ffb1042964634abe +Error from server (NotFound): namespaces "osm" not found +Warning: policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+ +podsecuritypolicy.policy/psp.flannel.unprivileged created +clusterrole.rbac.authorization.k8s.io/flannel created +clusterrolebinding.rbac.authorization.k8s.io/flannel created +serviceaccount/flannel created +configmap/kube-flannel-cfg created +daemonset.apps/kube-flannel-ds created +node/osm2 untainted +Helm3 is not installed, installing ... + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed +100 13.2M 100 13.2M 0 0 32.2M 0 --:--:-- --:--:-- --:--:-- 32.3M +linux-amd64/ +linux-amd64/helm +linux-amd64/LICENSE +linux-amd64/README.md +"stable" has been added to your repositories +Hang tight while we grab the latest from your chart repositories... +...Successfully got an update from the "stable" chart repository +Update Complete. ⎈Happy Helming!⎈ +Installing open-iscsi +Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:2 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:4 http://security.ubuntu.com/ubuntu bionic-security InRelease +Hit:5 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:3 https://packages.cloud.google.com/apt kubernetes-xenial InRelease +Hit:6 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:7 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +open-iscsi is already the newest version (2.0.874-5ubuntu2.11). +open-iscsi set to manually installed. +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded. +Synchronizing state of iscsid.service with SysV service script with /lib/systemd/systemd-sysv-install. +Executing: /lib/systemd/systemd-sysv-install enable iscsid +Installing OpenEBS +"openebs" has been added to your repositories +Hang tight while we grab the latest from your chart repositories... +...Successfully got an update from the "openebs" chart repository +...Successfully got an update from the "stable" chart repository +Update Complete. ⎈Happy Helming!⎈ +NAME: openebs +LAST DEPLOYED: Thu Jun 16 11:26:10 2022 +NAMESPACE: openebs +STATUS: deployed +REVISION: 1 +TEST SUITE: None +NOTES: +Successfully installed OpenEBS. + +Check the status by running: kubectl get pods -n openebs + +The default values will install NDM and enable OpenEBS hostpath and device +storage engines along with their default StorageClasses. Use `kubectl get sc` +to see the list of installed OpenEBS StorageClasses. + +**Note**: If you are upgrading from the older helm chart that was using cStor +and Jiva (non-csi) volumes, you will have to run the following command to include +the older provisioners: + +helm upgrade openebs openebs/openebs \ + --namespace openebs \ + --set legacy.enabled=true \ + --reuse-values + +For other engines, you will need to perform a few more additional steps to +enable the engine, configure the engines (e.g. creating pools) and create +StorageClasses. + +For example, cStor can be enabled using commands like: + +helm upgrade openebs openebs/openebs \ + --namespace openebs \ + --set cstor.enabled=true \ + --reuse-values + +For more information, +- view the online documentation at https://openebs.io/docs or +- connect with an active community on Kubernetes slack #openebs channel. +NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION +openebs openebs 1 2022-06-16 11:26:10.637547496 +0200 CEST deployed openebs-3.1.0 3.1.0 +Waiting for storageclass +Storageclass available +storageclass.storage.k8s.io/openebs-hostpath patched +configInline: + address-pools: + - name: default + protocol: layer2 + addresses: + - 192.168.64.22/32 +"metallb" has been added to your repositories +Hang tight while we grab the latest from your chart repositories... +...Successfully got an update from the "metallb" chart repository +...Successfully got an update from the "openebs" chart repository +...Successfully got an update from the "stable" chart repository +Update Complete. ⎈Happy Helming!⎈ +W0616 11:26:16.600656 13801 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+ +W0616 11:26:16.603418 13801 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+ +W0616 11:26:16.686741 13801 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+ +W0616 11:26:16.686778 13801 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+ +NAME: metallb +LAST DEPLOYED: Thu Jun 16 11:26:15 2022 +NAMESPACE: metallb-system +STATUS: deployed +REVISION: 1 +TEST SUITE: None +NOTES: +MetalLB is now running in the cluster. +LoadBalancer Services in your cluster are now available on the IPs you +defined in MetalLB's configuration: + +config: + address-pools: + - addresses: + - 192.168.64.22/32 + name: default + protocol: layer2 + +To see IP assignments, try `kubectl get services`. + +Bootstraping... 1 checks of 100 +OpenEBS: Waiting for 2 of 2 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-qxghf 0/1 +openebs-ndm-operator-687cf9466c-ghjbd 0/1 + +MetalLB: Waiting for 1 of 1 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 + + +Bootstraping... 2 checks of 100 +OpenEBS: Waiting for 3 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-qxghf 0/1 +openebs-ndm-operator-687cf9466c-ghjbd 0/1 +openebs-ndm-qbzpz 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 3 checks of 100 +OpenEBS: Waiting for 3 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-qxghf 0/1 +openebs-ndm-operator-687cf9466c-ghjbd 0/1 +openebs-ndm-qbzpz 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 4 checks of 100 +OpenEBS: Waiting for 3 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-qxghf 0/1 +openebs-ndm-operator-687cf9466c-ghjbd 0/1 +openebs-ndm-qbzpz 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 5 checks of 100 +OpenEBS: Waiting for 3 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-qxghf 0/1 +openebs-ndm-operator-687cf9466c-ghjbd 0/1 +openebs-ndm-qbzpz 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 6 checks of 100 +OpenEBS: Waiting for 2 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-qxghf 0/1 +openebs-ndm-operator-687cf9466c-ghjbd 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 7 checks of 100 +OpenEBS: Waiting for 2 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-qxghf 0/1 +openebs-ndm-operator-687cf9466c-ghjbd 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 8 checks of 100 +OpenEBS: Waiting for 2 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-qxghf 0/1 +openebs-ndm-operator-687cf9466c-ghjbd 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 9 checks of 100 +OpenEBS: Waiting for 2 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-qxghf 0/1 +openebs-ndm-operator-687cf9466c-ghjbd 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 10 checks of 100 +OpenEBS: Waiting for 2 of 3 pods to be ready: +openebs-localpv-provisioner-7965f77fb6-qxghf 0/1 +openebs-ndm-operator-687cf9466c-ghjbd 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 11 checks of 100 +OpenEBS: Waiting for 1 of 3 pods to be ready: +openebs-ndm-operator-687cf9466c-ghjbd 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 12 checks of 100 +OpenEBS: Waiting for 1 of 3 pods to be ready: +openebs-ndm-operator-687cf9466c-ghjbd 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 13 checks of 100 +OpenEBS: Waiting for 1 of 3 pods to be ready: +openebs-ndm-operator-687cf9466c-ghjbd 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 14 checks of 100 +OpenEBS: Waiting for 1 of 3 pods to be ready: +openebs-ndm-operator-687cf9466c-ghjbd 0/1 + +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 15 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 16 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 17 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 18 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 19 checks of 100 +MetalLB: Waiting for 2 of 2 pods to be ready: +metallb-controller-777cbcf64f-k6f55 0/1 +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 20 checks of 100 +MetalLB: Waiting for 1 of 2 pods to be ready: +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 21 checks of 100 +MetalLB: Waiting for 1 of 2 pods to be ready: +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 22 checks of 100 +MetalLB: Waiting for 1 of 2 pods to be ready: +metallb-speaker-7dp2s 0/1 + + +Bootstraping... 23 checks of 100 +MetalLB: Waiting for 1 of 2 pods to be ready: +metallb-speaker-7dp2s 0/1 + +===> Successful checks: 10/10 +K8S CLUSTER IS READY +Installing juju +juju (2.9/stable) 2.9.31 from Canonical** installed +no crontab for ubuntu ++ LAYER_BASIC='gcc build-essential python3-pip python3-setuptools python3-yaml' ++ TRUSTY_PACKAGES=python-virtualenv ++ XENIAL_PACKAGES=virtualenv ++ BIONIC_PACKAGES=virtualenv ++ DOWNLOAD_PACKAGES= ++ CLOUD_INIT_PACKAGES='curl cpu-checker bridge-utils cloud-utils tmux ubuntu-fan' ++ PACKAGES='gcc build-essential python3-pip python3-setuptools python3-yaml ' +++ juju version +Since Juju 2 is being run for the first time, it has downloaded the latest public cloud information. ++ JUJU_FULL_VERSION=2.9.31-ubuntu-amd64 +++ echo 2.9.31-ubuntu-amd64 +++ awk -F- '{print $1}' ++ JUJU_VERSION=2.9.31 +++ echo 2.9.31-ubuntu-amd64 +++ awk -F- '{print $2}' ++ OS_VERSION=ubuntu +++ echo 2.9.31-ubuntu-amd64 +++ awk -F- '{print $3}' ++ ARCH=amd64 ++ '[' 1 == 0 ']' ++ '[' 0 == 1 ']' ++ '[' 1 == 1 ']' ++ cache xenial virtualenv ++ series=xenial ++ container=juju-xenial-base ++ alias=juju/xenial/amd64 ++ lxc delete juju-xenial-base -f +Error: Not Found ++ true ++ lxc image copy ubuntu:xenial local: --alias clean-xenial +Image copied successfully! ++ lxc launch ubuntu:xenial juju-xenial-base +Creating juju-xenial-base +Starting juju-xenial-base ++ sleep 15 ++ lxc exec juju-xenial-base -- apt-get update -y +Get:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [99.8 kB] +Hit:2 http://archive.ubuntu.com/ubuntu xenial InRelease +Get:3 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [99.8 kB] +Get:4 http://security.ubuntu.com/ubuntu xenial-security/main Translation-en [360 kB] +Get:5 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [785 kB] +Get:6 http://security.ubuntu.com/ubuntu xenial-security/universe Translation-en [225 kB] +Get:7 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [7864 B] +Get:8 http://security.ubuntu.com/ubuntu xenial-security/multiverse Translation-en [2672 B] +Get:9 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [97.4 kB] +Get:10 https://esm.ubuntu.com/infra/ubuntu xenial-infra-security InRelease [7518 B] +Get:11 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [7532 kB] +Get:12 https://esm.ubuntu.com/infra/ubuntu xenial-infra-updates InRelease [7475 B] +Get:13 https://esm.ubuntu.com/infra/ubuntu xenial-infra-security/main amd64 Packages [462 kB] +Get:14 http://archive.ubuntu.com/ubuntu xenial/universe Translation-en [4354 kB] +Get:15 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [144 kB] +Get:16 http://archive.ubuntu.com/ubuntu xenial/multiverse Translation-en [106 kB] +Get:17 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [2049 kB] +Get:18 http://archive.ubuntu.com/ubuntu xenial-updates/main Translation-en [461 kB] +Get:19 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [1219 kB] +Get:20 http://archive.ubuntu.com/ubuntu xenial-updates/universe Translation-en [358 kB] +Get:21 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [22.6 kB] +Get:22 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse Translation-en [8476 B] +Get:23 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [9812 B] +Get:24 http://archive.ubuntu.com/ubuntu xenial-backports/main Translation-en [4456 B] +Get:25 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [11.3 kB] +Get:26 http://archive.ubuntu.com/ubuntu xenial-backports/universe Translation-en [4476 B] +Fetched 18.4 MB in 6s (3014 kB/s) +Reading package lists... ++ lxc exec juju-xenial-base -- apt-get upgrade -y +Reading package lists... +Building dependency tree... +Reading state information... +Calculating upgrade... +The following package was automatically installed and is no longer required: + libfreetype6 +Use 'apt autoremove' to remove it. +The following packages will be upgraded: + ubuntu-advantage-tools +1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. +Need to get 718 kB of archives. +After this operation, 140 kB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ubuntu-advantage-tools amd64 27.8~16.04.1 [718 kB] +dpkg-preconfigure: unable to re-open stdin: No such file or directory +Fetched 718 kB in 0s (3570 kB/s) +(Reading database ... 25907 files and directories currently installed.) +Preparing to unpack .../ubuntu-advantage-tools_27.8~16.04.1_amd64.deb ... +Unpacking ubuntu-advantage-tools (27.8~16.04.1) over (27.2.2~16.04.1) ... +Processing triggers for man-db (2.7.5-1) ... +Setting up ubuntu-advantage-tools (27.8~16.04.1) ... +Installing new version of config file /etc/logrotate.d/ubuntu-advantage-tools ... +Installing new version of config file /etc/ubuntu-advantage/help_data.yaml ... +Installing new version of config file /etc/ubuntu-advantage/uaclient.conf ... ++ lxc exec juju-xenial-base -- apt-get install -y curl cpu-checker bridge-utils cloud-utils tmux ubuntu-fan gcc build-essential python3-pip python3-setuptools python3-yaml virtualenv +Reading package lists... +Building dependency tree... +Reading state information... +python3-yaml is already the newest version (3.11-3build1). +tmux is already the newest version (2.1-3build1). +curl is already the newest version (7.47.0-1ubuntu2.19). +The following package was automatically installed and is no longer required: + libfreetype6 +Use 'apt autoremove' to remove it. +The following additional packages will be installed: + binutils cloud-image-utils cpp cpp-5 dpkg-dev fakeroot g++ g++-5 gcc-5 + genisoimage libaio1 libalgorithm-diff-perl libalgorithm-diff-xs-perl + libalgorithm-merge-perl libasan2 libatomic1 libboost-iostreams1.58.0 + libboost-random1.58.0 libboost-system1.58.0 libboost-thread1.58.0 + libc-dev-bin libc6-dev libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev + libfakeroot libfile-fcntllock-perl libgcc-5-dev libgomp1 libiscsi2 libisl15 + libitm1 liblsan0 libmpc3 libmpx0 libnspr4 libnss3 libnss3-nssdb + libpython3-dev libpython3.5-dev libquadmath0 librados2 librbd1 + libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make manpages-dev + msr-tools python-pip-whl python3-dev python3-virtualenv python3-wheel + python3.5-dev qemu-block-extra qemu-utils sharutils +Suggested packages: + binutils-doc cloud-utils-euca cpp-doc gcc-5-locales debian-keyring + g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib autoconf + automake libtool flex bison gdb gcc-doc gcc-5-multilib libgcc1-dbg + libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg + libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg + wodim cdrkit-doc glibc-doc libstdc++-5-doc make-doc python-setuptools-doc + debootstrap bsd-mailx | mailx +The following NEW packages will be installed: + binutils bridge-utils build-essential cloud-image-utils cloud-utils cpp + cpp-5 cpu-checker dpkg-dev fakeroot g++ g++-5 gcc gcc-5 genisoimage libaio1 + libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl + libasan2 libatomic1 libboost-iostreams1.58.0 libboost-random1.58.0 + libboost-system1.58.0 libboost-thread1.58.0 libc-dev-bin libc6-dev libcc1-0 + libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl + libgcc-5-dev libgomp1 libiscsi2 libisl15 libitm1 liblsan0 libmpc3 libmpx0 + libnspr4 libnss3 libnss3-nssdb libpython3-dev libpython3.5-dev libquadmath0 + librados2 librbd1 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make + manpages-dev msr-tools python-pip-whl python3-dev python3-pip + python3-setuptools python3-virtualenv python3-wheel python3.5-dev + qemu-block-extra qemu-utils sharutils ubuntu-fan virtualenv +0 upgraded, 68 newly installed, 0 to remove and 0 not upgraded. +Need to get 84.4 MB of archives. +After this operation, 226 MB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 libiscsi2 amd64 1.12.0-2 [51.5 kB] +Get:2 http://archive.ubuntu.com/ubuntu xenial/main amd64 libmpc3 amd64 1.0.3-1 [39.7 kB] +Get:3 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 binutils amd64 2.26.1-1ubuntu1~16.04.8 [2312 kB] +Get:4 http://archive.ubuntu.com/ubuntu xenial/main amd64 bridge-utils amd64 1.5-9ubuntu1 [28.6 kB] +Get:5 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libc-dev-bin amd64 2.23-0ubuntu11.3 [68.6 kB] +Get:6 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-libc-dev amd64 4.4.0-210.242 [832 kB] +Get:7 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libc6-dev amd64 2.23-0ubuntu11.3 [2083 kB] +Get:8 http://archive.ubuntu.com/ubuntu xenial/main amd64 libisl15 amd64 0.16.1-1 [524 kB] +Get:9 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cpp-5 amd64 5.4.0-6ubuntu1~16.04.12 [7783 kB] +Get:10 http://archive.ubuntu.com/ubuntu xenial/main amd64 cpp amd64 4:5.3.1-1ubuntu1 [27.7 kB] +Get:11 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcc1-0 amd64 5.4.0-6ubuntu1~16.04.12 [38.8 kB] +Get:12 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libgomp1 amd64 5.4.0-6ubuntu1~16.04.12 [55.2 kB] +Get:13 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libitm1 amd64 5.4.0-6ubuntu1~16.04.12 [27.4 kB] +Get:14 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libatomic1 amd64 5.4.0-6ubuntu1~16.04.12 [8892 B] +Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libasan2 amd64 5.4.0-6ubuntu1~16.04.12 [265 kB] +Get:16 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 liblsan0 amd64 5.4.0-6ubuntu1~16.04.12 [105 kB] +Get:17 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libtsan0 amd64 5.4.0-6ubuntu1~16.04.12 [244 kB] +Get:18 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libubsan0 amd64 5.4.0-6ubuntu1~16.04.12 [95.3 kB] +Get:19 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcilkrts5 amd64 5.4.0-6ubuntu1~16.04.12 [40.0 kB] +Get:20 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libmpx0 amd64 5.4.0-6ubuntu1~16.04.12 [9762 B] +Get:21 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libquadmath0 amd64 5.4.0-6ubuntu1~16.04.12 [131 kB] +Get:22 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libgcc-5-dev amd64 5.4.0-6ubuntu1~16.04.12 [2239 kB] +Get:23 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 gcc-5 amd64 5.4.0-6ubuntu1~16.04.12 [8612 kB] +Get:24 http://archive.ubuntu.com/ubuntu xenial/main amd64 gcc amd64 4:5.3.1-1ubuntu1 [5244 B] +Get:25 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libstdc++-5-dev amd64 5.4.0-6ubuntu1~16.04.12 [1428 kB] +Get:26 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 g++-5 amd64 5.4.0-6ubuntu1~16.04.12 [8430 kB] +Get:27 http://archive.ubuntu.com/ubuntu xenial/main amd64 g++ amd64 4:5.3.1-1ubuntu1 [1504 B] +Get:28 http://archive.ubuntu.com/ubuntu xenial/main amd64 make amd64 4.1-6 [151 kB] +Get:29 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libdpkg-perl all 1.18.4ubuntu1.7 [195 kB] +Get:30 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 dpkg-dev all 1.18.4ubuntu1.7 [584 kB] +Get:31 http://archive.ubuntu.com/ubuntu xenial/main amd64 build-essential amd64 12.1ubuntu2 [4758 B] +Get:32 http://archive.ubuntu.com/ubuntu xenial/main amd64 msr-tools amd64 1.3-2 [10.6 kB] +Get:33 http://archive.ubuntu.com/ubuntu xenial/main amd64 cpu-checker amd64 0.7-0ubuntu7 [6862 B] +Get:34 http://archive.ubuntu.com/ubuntu xenial/main amd64 libfakeroot amd64 1.20.2-1ubuntu1 [25.5 kB] +Get:35 http://archive.ubuntu.com/ubuntu xenial/main amd64 fakeroot amd64 1.20.2-1ubuntu1 [61.8 kB] +Get:36 http://archive.ubuntu.com/ubuntu xenial/main amd64 genisoimage amd64 9:1.1.11-3ubuntu1 [316 kB] +Get:37 http://archive.ubuntu.com/ubuntu xenial/main amd64 libaio1 amd64 0.3.110-2 [6356 B] +Get:38 http://archive.ubuntu.com/ubuntu xenial/main amd64 libalgorithm-diff-perl all 1.19.03-1 [47.6 kB] +Get:39 http://archive.ubuntu.com/ubuntu xenial/main amd64 libalgorithm-diff-xs-perl amd64 0.04-4build1 [11.0 kB] +Get:40 http://archive.ubuntu.com/ubuntu xenial/main amd64 libalgorithm-merge-perl all 0.08-3 [12.0 kB] +Get:41 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libboost-iostreams1.58.0 amd64 1.58.0+dfsg-5ubuntu3.1 [29.0 kB] +Get:42 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libboost-system1.58.0 amd64 1.58.0+dfsg-5ubuntu3.1 [9146 B] +Get:43 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libboost-random1.58.0 amd64 1.58.0+dfsg-5ubuntu3.1 [11.7 kB] +Get:44 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libboost-thread1.58.0 amd64 1.58.0+dfsg-5ubuntu3.1 [47.0 kB] +Get:45 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libexpat1-dev amd64 2.1.0-7ubuntu0.16.04.5 [115 kB] +Get:46 http://archive.ubuntu.com/ubuntu xenial/main amd64 libfile-fcntllock-perl amd64 0.22-3 [32.0 kB] +Get:47 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libnspr4 amd64 2:4.13.1-0ubuntu0.16.04.1 [112 kB] +Get:48 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libnss3-nssdb all 2:3.28.4-0ubuntu0.16.04.14 [10.6 kB] +Get:49 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libnss3 amd64 2:3.28.4-0ubuntu0.16.04.14 [1232 kB] +Get:50 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython3.5-dev amd64 3.5.2-2ubuntu0~16.04.13 [37.3 MB] +Get:51 http://archive.ubuntu.com/ubuntu xenial/main amd64 libpython3-dev amd64 3.5.1-3 [6926 B] +Get:52 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 librados2 amd64 10.2.11-0ubuntu0.16.04.3 [1651 kB] +Get:53 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 librbd1 amd64 10.2.11-0ubuntu0.16.04.3 [2198 kB] +Get:54 http://archive.ubuntu.com/ubuntu xenial/main amd64 manpages-dev all 4.04-2 [2048 kB] +Get:55 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 python-pip-whl all 8.1.1-2ubuntu0.6 [1112 kB] +Get:56 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3.5-dev amd64 3.5.2-2ubuntu0~16.04.13 [413 kB] +Get:57 http://archive.ubuntu.com/ubuntu xenial/main amd64 python3-dev amd64 3.5.1-3 [1186 B] +Get:58 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 python3-pip all 8.1.1-2ubuntu0.6 [109 kB] +Get:59 http://archive.ubuntu.com/ubuntu xenial/main amd64 python3-setuptools all 20.7.0-1 [88.0 kB] +Get:60 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 python3-virtualenv all 15.0.1+ds-3ubuntu1.1 [43.3 kB] +Get:61 http://archive.ubuntu.com/ubuntu xenial/universe amd64 python3-wheel all 0.29.0-1 [48.1 kB] +Get:62 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 qemu-block-extra amd64 1:2.5+dfsg-5ubuntu10.51 [32.4 kB] +Get:63 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 qemu-utils amd64 1:2.5+dfsg-5ubuntu10.51 [582 kB] +Get:64 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 sharutils amd64 1:4.15.2-1ubuntu0.1 [148 kB] +Get:65 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ubuntu-fan all 0.12.8~16.04.3 [35.1 kB] +Get:66 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 virtualenv all 15.0.1+ds-3ubuntu1.1 [4346 B] +Get:67 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cloud-image-utils all 0.27-0ubuntu25.2 [16.2 kB] +Get:68 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cloud-utils all 0.27-0ubuntu25.2 [1514 B] +dpkg-preconfigure: unable to re-open stdin: No such file or directory +Fetched 84.4 MB in 2s (30.4 MB/s) +Selecting previously unselected package libiscsi2:amd64. +(Reading database ... 25928 files and directories currently installed.) +Preparing to unpack .../libiscsi2_1.12.0-2_amd64.deb ... +Unpacking libiscsi2:amd64 (1.12.0-2) ... +Selecting previously unselected package libmpc3:amd64. +Preparing to unpack .../libmpc3_1.0.3-1_amd64.deb ... +Unpacking libmpc3:amd64 (1.0.3-1) ... +Selecting previously unselected package binutils. +Preparing to unpack .../binutils_2.26.1-1ubuntu1~16.04.8_amd64.deb ... +Unpacking binutils (2.26.1-1ubuntu1~16.04.8) ... +Selecting previously unselected package bridge-utils. +Preparing to unpack .../bridge-utils_1.5-9ubuntu1_amd64.deb ... +Unpacking bridge-utils (1.5-9ubuntu1) ... +Selecting previously unselected package libc-dev-bin. +Preparing to unpack .../libc-dev-bin_2.23-0ubuntu11.3_amd64.deb ... +Unpacking libc-dev-bin (2.23-0ubuntu11.3) ... +Selecting previously unselected package linux-libc-dev:amd64. +Preparing to unpack .../linux-libc-dev_4.4.0-210.242_amd64.deb ... +Unpacking linux-libc-dev:amd64 (4.4.0-210.242) ... +Selecting previously unselected package libc6-dev:amd64. +Preparing to unpack .../libc6-dev_2.23-0ubuntu11.3_amd64.deb ... +Unpacking libc6-dev:amd64 (2.23-0ubuntu11.3) ... +Selecting previously unselected package libisl15:amd64. +Preparing to unpack .../libisl15_0.16.1-1_amd64.deb ... +Unpacking libisl15:amd64 (0.16.1-1) ... +Selecting previously unselected package cpp-5. +Preparing to unpack .../cpp-5_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking cpp-5 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package cpp. +Preparing to unpack .../cpp_4%3a5.3.1-1ubuntu1_amd64.deb ... +Unpacking cpp (4:5.3.1-1ubuntu1) ... +Selecting previously unselected package libcc1-0:amd64. +Preparing to unpack .../libcc1-0_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libcc1-0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libgomp1:amd64. +Preparing to unpack .../libgomp1_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libgomp1:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libitm1:amd64. +Preparing to unpack .../libitm1_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libitm1:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libatomic1:amd64. +Preparing to unpack .../libatomic1_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libatomic1:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libasan2:amd64. +Preparing to unpack .../libasan2_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libasan2:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package liblsan0:amd64. +Preparing to unpack .../liblsan0_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking liblsan0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libtsan0:amd64. +Preparing to unpack .../libtsan0_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libtsan0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libubsan0:amd64. +Preparing to unpack .../libubsan0_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libubsan0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libcilkrts5:amd64. +Preparing to unpack .../libcilkrts5_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libcilkrts5:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libmpx0:amd64. +Preparing to unpack .../libmpx0_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libmpx0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libquadmath0:amd64. +Preparing to unpack .../libquadmath0_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libquadmath0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libgcc-5-dev:amd64. +Preparing to unpack .../libgcc-5-dev_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libgcc-5-dev:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package gcc-5. +Preparing to unpack .../gcc-5_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking gcc-5 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package gcc. +Preparing to unpack .../gcc_4%3a5.3.1-1ubuntu1_amd64.deb ... +Unpacking gcc (4:5.3.1-1ubuntu1) ... +Selecting previously unselected package libstdc++-5-dev:amd64. +Preparing to unpack .../libstdc++-5-dev_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libstdc++-5-dev:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package g++-5. +Preparing to unpack .../g++-5_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking g++-5 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package g++. +Preparing to unpack .../g++_4%3a5.3.1-1ubuntu1_amd64.deb ... +Unpacking g++ (4:5.3.1-1ubuntu1) ... +Selecting previously unselected package make. +Preparing to unpack .../archives/make_4.1-6_amd64.deb ... +Unpacking make (4.1-6) ... +Selecting previously unselected package libdpkg-perl. +Preparing to unpack .../libdpkg-perl_1.18.4ubuntu1.7_all.deb ... +Unpacking libdpkg-perl (1.18.4ubuntu1.7) ... +Selecting previously unselected package dpkg-dev. +Preparing to unpack .../dpkg-dev_1.18.4ubuntu1.7_all.deb ... +Unpacking dpkg-dev (1.18.4ubuntu1.7) ... +Selecting previously unselected package build-essential. +Preparing to unpack .../build-essential_12.1ubuntu2_amd64.deb ... +Unpacking build-essential (12.1ubuntu2) ... +Selecting previously unselected package msr-tools. +Preparing to unpack .../msr-tools_1.3-2_amd64.deb ... +Unpacking msr-tools (1.3-2) ... +Selecting previously unselected package cpu-checker. +Preparing to unpack .../cpu-checker_0.7-0ubuntu7_amd64.deb ... +Unpacking cpu-checker (0.7-0ubuntu7) ... +Selecting previously unselected package libfakeroot:amd64. +Preparing to unpack .../libfakeroot_1.20.2-1ubuntu1_amd64.deb ... +Unpacking libfakeroot:amd64 (1.20.2-1ubuntu1) ... +Selecting previously unselected package fakeroot. +Preparing to unpack .../fakeroot_1.20.2-1ubuntu1_amd64.deb ... +Unpacking fakeroot (1.20.2-1ubuntu1) ... +Selecting previously unselected package genisoimage. +Preparing to unpack .../genisoimage_9%3a1.1.11-3ubuntu1_amd64.deb ... +Unpacking genisoimage (9:1.1.11-3ubuntu1) ... +Selecting previously unselected package libaio1:amd64. +Preparing to unpack .../libaio1_0.3.110-2_amd64.deb ... +Unpacking libaio1:amd64 (0.3.110-2) ... +Selecting previously unselected package libalgorithm-diff-perl. +Preparing to unpack .../libalgorithm-diff-perl_1.19.03-1_all.deb ... +Unpacking libalgorithm-diff-perl (1.19.03-1) ... +Selecting previously unselected package libalgorithm-diff-xs-perl. +Preparing to unpack .../libalgorithm-diff-xs-perl_0.04-4build1_amd64.deb ... +Unpacking libalgorithm-diff-xs-perl (0.04-4build1) ... +Selecting previously unselected package libalgorithm-merge-perl. +Preparing to unpack .../libalgorithm-merge-perl_0.08-3_all.deb ... +Unpacking libalgorithm-merge-perl (0.08-3) ... +Selecting previously unselected package libboost-iostreams1.58.0:amd64. +Preparing to unpack .../libboost-iostreams1.58.0_1.58.0+dfsg-5ubuntu3.1_amd64.deb ... +Unpacking libboost-iostreams1.58.0:amd64 (1.58.0+dfsg-5ubuntu3.1) ... +Selecting previously unselected package libboost-system1.58.0:amd64. +Preparing to unpack .../libboost-system1.58.0_1.58.0+dfsg-5ubuntu3.1_amd64.deb ... +Unpacking libboost-system1.58.0:amd64 (1.58.0+dfsg-5ubuntu3.1) ... +Selecting previously unselected package libboost-random1.58.0:amd64. +Preparing to unpack .../libboost-random1.58.0_1.58.0+dfsg-5ubuntu3.1_amd64.deb ... +Unpacking libboost-random1.58.0:amd64 (1.58.0+dfsg-5ubuntu3.1) ... +Selecting previously unselected package libboost-thread1.58.0:amd64. +Preparing to unpack .../libboost-thread1.58.0_1.58.0+dfsg-5ubuntu3.1_amd64.deb ... +Unpacking libboost-thread1.58.0:amd64 (1.58.0+dfsg-5ubuntu3.1) ... +Selecting previously unselected package libexpat1-dev:amd64. +Preparing to unpack .../libexpat1-dev_2.1.0-7ubuntu0.16.04.5_amd64.deb ... +Unpacking libexpat1-dev:amd64 (2.1.0-7ubuntu0.16.04.5) ... +Selecting previously unselected package libfile-fcntllock-perl. +Preparing to unpack .../libfile-fcntllock-perl_0.22-3_amd64.deb ... +Unpacking libfile-fcntllock-perl (0.22-3) ... +Selecting previously unselected package libnspr4:amd64. +Preparing to unpack .../libnspr4_2%3a4.13.1-0ubuntu0.16.04.1_amd64.deb ... +Unpacking libnspr4:amd64 (2:4.13.1-0ubuntu0.16.04.1) ... +Selecting previously unselected package libnss3-nssdb. +Preparing to unpack .../libnss3-nssdb_2%3a3.28.4-0ubuntu0.16.04.14_all.deb ... +Unpacking libnss3-nssdb (2:3.28.4-0ubuntu0.16.04.14) ... +Selecting previously unselected package libnss3:amd64. +Preparing to unpack .../libnss3_2%3a3.28.4-0ubuntu0.16.04.14_amd64.deb ... +Unpacking libnss3:amd64 (2:3.28.4-0ubuntu0.16.04.14) ... +Selecting previously unselected package libpython3.5-dev:amd64. +Preparing to unpack .../libpython3.5-dev_3.5.2-2ubuntu0~16.04.13_amd64.deb ... +Unpacking libpython3.5-dev:amd64 (3.5.2-2ubuntu0~16.04.13) ... +Selecting previously unselected package libpython3-dev:amd64. +Preparing to unpack .../libpython3-dev_3.5.1-3_amd64.deb ... +Unpacking libpython3-dev:amd64 (3.5.1-3) ... +Selecting previously unselected package librados2. +Preparing to unpack .../librados2_10.2.11-0ubuntu0.16.04.3_amd64.deb ... +Unpacking librados2 (10.2.11-0ubuntu0.16.04.3) ... +Selecting previously unselected package librbd1. +Preparing to unpack .../librbd1_10.2.11-0ubuntu0.16.04.3_amd64.deb ... +Unpacking librbd1 (10.2.11-0ubuntu0.16.04.3) ... +Selecting previously unselected package manpages-dev. +Preparing to unpack .../manpages-dev_4.04-2_all.deb ... +Unpacking manpages-dev (4.04-2) ... +Selecting previously unselected package python-pip-whl. +Preparing to unpack .../python-pip-whl_8.1.1-2ubuntu0.6_all.deb ... +Unpacking python-pip-whl (8.1.1-2ubuntu0.6) ... +Selecting previously unselected package python3.5-dev. +Preparing to unpack .../python3.5-dev_3.5.2-2ubuntu0~16.04.13_amd64.deb ... +Unpacking python3.5-dev (3.5.2-2ubuntu0~16.04.13) ... +Selecting previously unselected package python3-dev. +Preparing to unpack .../python3-dev_3.5.1-3_amd64.deb ... +Unpacking python3-dev (3.5.1-3) ... +Selecting previously unselected package python3-pip. +Preparing to unpack .../python3-pip_8.1.1-2ubuntu0.6_all.deb ... +Unpacking python3-pip (8.1.1-2ubuntu0.6) ... +Selecting previously unselected package python3-setuptools. +Preparing to unpack .../python3-setuptools_20.7.0-1_all.deb ... +Unpacking python3-setuptools (20.7.0-1) ... +Selecting previously unselected package python3-virtualenv. +Preparing to unpack .../python3-virtualenv_15.0.1+ds-3ubuntu1.1_all.deb ... +Unpacking python3-virtualenv (15.0.1+ds-3ubuntu1.1) ... +Selecting previously unselected package python3-wheel. +Preparing to unpack .../python3-wheel_0.29.0-1_all.deb ... +Unpacking python3-wheel (0.29.0-1) ... +Selecting previously unselected package qemu-block-extra:amd64. +Preparing to unpack .../qemu-block-extra_1%3a2.5+dfsg-5ubuntu10.51_amd64.deb ... +Unpacking qemu-block-extra:amd64 (1:2.5+dfsg-5ubuntu10.51) ... +Selecting previously unselected package qemu-utils. +Preparing to unpack .../qemu-utils_1%3a2.5+dfsg-5ubuntu10.51_amd64.deb ... +Unpacking qemu-utils (1:2.5+dfsg-5ubuntu10.51) ... +Selecting previously unselected package sharutils. +Preparing to unpack .../sharutils_1%3a4.15.2-1ubuntu0.1_amd64.deb ... +Unpacking sharutils (1:4.15.2-1ubuntu0.1) ... +Selecting previously unselected package ubuntu-fan. +Preparing to unpack .../ubuntu-fan_0.12.8~16.04.3_all.deb ... +Unpacking ubuntu-fan (0.12.8~16.04.3) ... +Selecting previously unselected package virtualenv. +Preparing to unpack .../virtualenv_15.0.1+ds-3ubuntu1.1_all.deb ... +Unpacking virtualenv (15.0.1+ds-3ubuntu1.1) ... +Selecting previously unselected package cloud-image-utils. +Preparing to unpack .../cloud-image-utils_0.27-0ubuntu25.2_all.deb ... +Unpacking cloud-image-utils (0.27-0ubuntu25.2) ... +Selecting previously unselected package cloud-utils. +Preparing to unpack .../cloud-utils_0.27-0ubuntu25.2_all.deb ... +Unpacking cloud-utils (0.27-0ubuntu25.2) ... +Processing triggers for libc-bin (2.23-0ubuntu11.3) ... +Processing triggers for man-db (2.7.5-1) ... +Processing triggers for install-info (6.1.0.dfsg.1-5) ... +Processing triggers for ureadahead (0.100.0-19.1) ... +Processing triggers for systemd (229-4ubuntu21.31) ... +Setting up libiscsi2:amd64 (1.12.0-2) ... +Setting up libmpc3:amd64 (1.0.3-1) ... +Setting up binutils (2.26.1-1ubuntu1~16.04.8) ... +Setting up bridge-utils (1.5-9ubuntu1) ... +Setting up libc-dev-bin (2.23-0ubuntu11.3) ... +Setting up linux-libc-dev:amd64 (4.4.0-210.242) ... +Setting up libc6-dev:amd64 (2.23-0ubuntu11.3) ... +Setting up libisl15:amd64 (0.16.1-1) ... +Setting up cpp-5 (5.4.0-6ubuntu1~16.04.12) ... +Setting up cpp (4:5.3.1-1ubuntu1) ... +Setting up libcc1-0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libgomp1:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libitm1:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libatomic1:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libasan2:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up liblsan0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libtsan0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libubsan0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libcilkrts5:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libmpx0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libquadmath0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libgcc-5-dev:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up gcc-5 (5.4.0-6ubuntu1~16.04.12) ... +Setting up gcc (4:5.3.1-1ubuntu1) ... +Setting up libstdc++-5-dev:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up g++-5 (5.4.0-6ubuntu1~16.04.12) ... +Setting up g++ (4:5.3.1-1ubuntu1) ... +update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode +Setting up make (4.1-6) ... +Setting up libdpkg-perl (1.18.4ubuntu1.7) ... +Setting up dpkg-dev (1.18.4ubuntu1.7) ... +Setting up build-essential (12.1ubuntu2) ... +Setting up msr-tools (1.3-2) ... +Setting up cpu-checker (0.7-0ubuntu7) ... +Setting up libfakeroot:amd64 (1.20.2-1ubuntu1) ... +Setting up fakeroot (1.20.2-1ubuntu1) ... +update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode +Setting up genisoimage (9:1.1.11-3ubuntu1) ... +Setting up libaio1:amd64 (0.3.110-2) ... +Setting up libalgorithm-diff-perl (1.19.03-1) ... +Setting up libalgorithm-diff-xs-perl (0.04-4build1) ... +Setting up libalgorithm-merge-perl (0.08-3) ... +Setting up libboost-iostreams1.58.0:amd64 (1.58.0+dfsg-5ubuntu3.1) ... +Setting up libboost-system1.58.0:amd64 (1.58.0+dfsg-5ubuntu3.1) ... +Setting up libboost-random1.58.0:amd64 (1.58.0+dfsg-5ubuntu3.1) ... +Setting up libboost-thread1.58.0:amd64 (1.58.0+dfsg-5ubuntu3.1) ... +Setting up libexpat1-dev:amd64 (2.1.0-7ubuntu0.16.04.5) ... +Setting up libfile-fcntllock-perl (0.22-3) ... +Setting up libnspr4:amd64 (2:4.13.1-0ubuntu0.16.04.1) ... +Setting up libpython3.5-dev:amd64 (3.5.2-2ubuntu0~16.04.13) ... +Setting up libpython3-dev:amd64 (3.5.1-3) ... +Setting up manpages-dev (4.04-2) ... +Setting up python-pip-whl (8.1.1-2ubuntu0.6) ... +Setting up python3.5-dev (3.5.2-2ubuntu0~16.04.13) ... +Setting up python3-dev (3.5.1-3) ... +Setting up python3-pip (8.1.1-2ubuntu0.6) ... +Setting up python3-setuptools (20.7.0-1) ... +Setting up python3-virtualenv (15.0.1+ds-3ubuntu1.1) ... +Setting up python3-wheel (0.29.0-1) ... +Setting up sharutils (1:4.15.2-1ubuntu0.1) ... +Setting up ubuntu-fan (0.12.8~16.04.3) ... +Setting up virtualenv (15.0.1+ds-3ubuntu1.1) ... +Setting up libnss3-nssdb (2:3.28.4-0ubuntu0.16.04.14) ... +Setting up libnss3:amd64 (2:3.28.4-0ubuntu0.16.04.14) ... +Setting up librados2 (10.2.11-0ubuntu0.16.04.3) ... +Setting up librbd1 (10.2.11-0ubuntu0.16.04.3) ... +Setting up qemu-block-extra:amd64 (1:2.5+dfsg-5ubuntu10.51) ... +Setting up qemu-utils (1:2.5+dfsg-5ubuntu10.51) ... +Setting up cloud-image-utils (0.27-0ubuntu25.2) ... +Setting up cloud-utils (0.27-0ubuntu25.2) ... +Processing triggers for libc-bin (2.23-0ubuntu11.3) ... +Processing triggers for ureadahead (0.100.0-19.1) ... +Processing triggers for systemd (229-4ubuntu21.31) ... ++ echo 'Installing Juju agent 2.9.31-ubuntu-amd64' +Installing Juju agent 2.9.31-ubuntu-amd64 ++ lxc exec juju-xenial-base -- mkdir -p /var/lib/juju/tools/2.9.31-ubuntu-amd64/ ++ lxc exec juju-xenial-base -- curl -sS --connect-timeout 20 --noproxy '*' --insecure -o /var/lib/juju/tools/2.9.31-ubuntu-amd64/tools.tar.gz https://streams.canonical.com/juju/tools/agent/2.9.31/juju-2.9.31-ubuntu-amd64.tgz ++ lxc exec juju-xenial-base -- tar zxf /var/lib/juju/tools/2.9.31-ubuntu-amd64/tools.tar.gz -C /var/lib/juju/tools/2.9.31-ubuntu-amd64 + +gzip: stdin: not in gzip format +tar: Child returned status 1 +tar: Error is not recoverable: exiting now ++ true ++ lxc stop juju-xenial-base ++ lxc image delete juju/xenial/amd64 +Error: not found ++ true ++ lxc image delete clean-xenial +++ date +%Y%m%d ++ lxc publish juju-xenial-base --alias juju/xenial/amd64 'description=xenial juju dev image (20220616)' +Instance published with fingerprint: 34400d1f74286e5558894ba8cea6f43b3197d0f1e95d4f42be60c400930a6b21 ++ lxc delete juju-xenial-base -f ++ '[' 1 == 1 ']' ++ cache bionic virtualenv ++ series=bionic ++ container=juju-bionic-base ++ alias=juju/bionic/amd64 ++ lxc delete juju-bionic-base -f +Error: Not Found ++ true ++ lxc image copy ubuntu:bionic local: --alias clean-bionic +Image copied successfully! ++ lxc launch ubuntu:bionic juju-bionic-base +Creating juju-bionic-base +Starting juju-bionic-base ++ sleep 15 ++ lxc exec juju-bionic-base -- apt-get update -y +Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB] +Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease +Get:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB] +Get:4 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [2304 kB] +Get:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB] +Get:6 http://security.ubuntu.com/ubuntu bionic-security/main Translation-en [401 kB] +Get:7 http://security.ubuntu.com/ubuntu bionic-security/restricted amd64 Packages [786 kB] +Get:8 http://security.ubuntu.com/ubuntu bionic-security/restricted Translation-en [108 kB] +Get:9 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [1212 kB] +Get:10 http://security.ubuntu.com/ubuntu bionic-security/universe Translation-en [279 kB] +Get:11 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [19.0 kB] +Get:12 http://security.ubuntu.com/ubuntu bionic-security/multiverse Translation-en [3836 B] +Get:13 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [8570 kB] +Get:14 http://archive.ubuntu.com/ubuntu bionic/universe Translation-en [4941 kB] +Get:15 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [151 kB] +Get:16 http://archive.ubuntu.com/ubuntu bionic/multiverse Translation-en [108 kB] +Get:17 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [2646 kB] +Get:18 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1826 kB] +Get:19 http://archive.ubuntu.com/ubuntu bionic-updates/universe Translation-en [396 kB] +Get:20 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [24.9 kB] +Get:21 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse Translation-en [6012 B] +Get:22 http://archive.ubuntu.com/ubuntu bionic-backports/main amd64 Packages [10.8 kB] +Get:23 http://archive.ubuntu.com/ubuntu bionic-backports/main Translation-en [5016 B] +Get:24 http://archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages [11.6 kB] +Get:25 http://archive.ubuntu.com/ubuntu bionic-backports/universe Translation-en [5864 B] +Fetched 24.1 MB in 10s (2392 kB/s) +Reading package lists... ++ lxc exec juju-bionic-base -- apt-get upgrade -y +Reading package lists... +Building dependency tree... +Reading state information... +Calculating upgrade... +The following package was automatically installed and is no longer required: + libfreetype6 +Use 'apt autoremove' to remove it. +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. ++ lxc exec juju-bionic-base -- apt-get install -y curl cpu-checker bridge-utils cloud-utils tmux ubuntu-fan gcc build-essential python3-pip python3-setuptools python3-yaml virtualenv +Reading package lists... +Building dependency tree... +Reading state information... +python3-yaml is already the newest version (3.12-1build2). +python3-yaml set to manually installed. +curl is already the newest version (7.58.0-2ubuntu3.18). +curl set to manually installed. +tmux is already the newest version (2.6-3ubuntu0.2). +tmux set to manually installed. +The following package was automatically installed and is no longer required: + libfreetype6 +Use 'apt autoremove' to remove it. +The following additional packages will be installed: + binutils binutils-common binutils-x86-64-linux-gnu cloud-image-utils cpp + cpp-7 dh-python dpkg-dev fakeroot g++ g++-7 gcc-7 gcc-7-base genisoimage + ibverbs-providers libaio1 libalgorithm-diff-perl libalgorithm-diff-xs-perl + libalgorithm-merge-perl libasan4 libatomic1 libbinutils libc-dev-bin + libc6-dev libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot + libfile-fcntllock-perl libgcc-7-dev libgomp1 libibverbs1 libiscsi7 libisl19 + libitm1 liblsan0 libmpc3 libmpx2 libnl-3-200 libnl-route-3-200 libnspr4 + libnss3 libpython3-dev libpython3.6-dev libquadmath0 librados2 librbd1 + libstdc++-7-dev libtsan0 libubsan0 linux-libc-dev make manpages-dev + msr-tools python-pip-whl python3-crypto python3-dev python3-distutils + python3-keyring python3-keyrings.alt python3-lib2to3 python3-secretstorage + python3-virtualenv python3-wheel python3-xdg python3.6-dev qemu-block-extra + qemu-utils sharutils +Suggested packages: + binutils-doc ifupdown cloud-utils-euca mtools cpp-doc gcc-7-locales + debian-keyring g++-multilib g++-7-multilib gcc-7-doc libstdc++6-7-dbg + gcc-multilib autoconf automake libtool flex bison gdb gcc-doc gcc-7-multilib + libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan4-dbg + liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx2-dbg + libquadmath0-dbg wodim cdrkit-doc glibc-doc bzr libstdc++-7-doc make-doc + python-crypto-doc gnome-keyring libkf5wallet-bin gir1.2-gnomekeyring-1.0 + python-secretstorage-doc python-setuptools-doc debootstrap sharutils-doc + bsd-mailx | mailx +The following NEW packages will be installed: + binutils binutils-common binutils-x86-64-linux-gnu bridge-utils + build-essential cloud-image-utils cloud-utils cpp cpp-7 cpu-checker + dh-python dpkg-dev fakeroot g++ g++-7 gcc gcc-7 gcc-7-base genisoimage + ibverbs-providers libaio1 libalgorithm-diff-perl libalgorithm-diff-xs-perl + libalgorithm-merge-perl libasan4 libatomic1 libbinutils libc-dev-bin + libc6-dev libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot + libfile-fcntllock-perl libgcc-7-dev libgomp1 libibverbs1 libiscsi7 libisl19 + libitm1 liblsan0 libmpc3 libmpx2 libnl-3-200 libnl-route-3-200 libnspr4 + libnss3 libpython3-dev libpython3.6-dev libquadmath0 librados2 librbd1 + libstdc++-7-dev libtsan0 libubsan0 linux-libc-dev make manpages-dev + msr-tools python-pip-whl python3-crypto python3-dev python3-distutils + python3-keyring python3-keyrings.alt python3-lib2to3 python3-pip + python3-secretstorage python3-setuptools python3-virtualenv python3-wheel + python3-xdg python3.6-dev qemu-block-extra qemu-utils sharutils ubuntu-fan + virtualenv +0 upgraded, 79 newly installed, 0 to remove and 0 not upgraded. +Need to get 98.2 MB of archives. +After this operation, 283 MB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils-common amd64 2.30-21ubuntu1~18.04.7 [197 kB] +Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libbinutils amd64 2.30-21ubuntu1~18.04.7 [489 kB] +Get:3 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.30-21ubuntu1~18.04.7 [1839 kB] +Get:4 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils amd64 2.30-21ubuntu1~18.04.7 [3388 B] +Get:5 http://archive.ubuntu.com/ubuntu bionic/main amd64 bridge-utils amd64 1.5-15ubuntu1 [30.1 kB] +Get:6 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libc-dev-bin amd64 2.27-3ubuntu1.6 [71.9 kB] +Get:7 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 linux-libc-dev amd64 4.15.0-187.198 [980 kB] +Get:8 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libc6-dev amd64 2.27-3ubuntu1.6 [2587 kB] +Get:9 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc-7-base amd64 7.5.0-3ubuntu1~18.04 [18.3 kB] +Get:10 http://archive.ubuntu.com/ubuntu bionic/main amd64 libisl19 amd64 0.19-1 [551 kB] +Get:11 http://archive.ubuntu.com/ubuntu bionic/main amd64 libmpc3 amd64 1.1.0-1 [40.8 kB] +Get:12 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 cpp-7 amd64 7.5.0-3ubuntu1~18.04 [8591 kB] +Get:13 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 cpp amd64 4:7.4.0-1ubuntu2.3 [27.7 kB] +Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libcc1-0 amd64 8.4.0-1ubuntu1~18.04 [39.4 kB] +Get:15 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgomp1 amd64 8.4.0-1ubuntu1~18.04 [76.5 kB] +Get:16 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libitm1 amd64 8.4.0-1ubuntu1~18.04 [27.9 kB] +Get:17 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libatomic1 amd64 8.4.0-1ubuntu1~18.04 [9192 B] +Get:18 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libasan4 amd64 7.5.0-3ubuntu1~18.04 [358 kB] +Get:19 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 liblsan0 amd64 8.4.0-1ubuntu1~18.04 [133 kB] +Get:20 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libtsan0 amd64 8.4.0-1ubuntu1~18.04 [288 kB] +Get:21 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libubsan0 amd64 7.5.0-3ubuntu1~18.04 [126 kB] +Get:22 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libcilkrts5 amd64 7.5.0-3ubuntu1~18.04 [42.5 kB] +Get:23 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libmpx2 amd64 8.4.0-1ubuntu1~18.04 [11.6 kB] +Get:24 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libquadmath0 amd64 8.4.0-1ubuntu1~18.04 [134 kB] +Get:25 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgcc-7-dev amd64 7.5.0-3ubuntu1~18.04 [2378 kB] +Get:26 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc-7 amd64 7.5.0-3ubuntu1~18.04 [9381 kB] +Get:27 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc amd64 4:7.4.0-1ubuntu2.3 [5184 B] +Get:28 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libstdc++-7-dev amd64 7.5.0-3ubuntu1~18.04 [1471 kB] +Get:29 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 g++-7 amd64 7.5.0-3ubuntu1~18.04 [9697 kB] +Get:30 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 g++ amd64 4:7.4.0-1ubuntu2.3 [1568 B] +Get:31 http://archive.ubuntu.com/ubuntu bionic/main amd64 make amd64 4.1-9.1ubuntu1 [154 kB] +Get:32 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libdpkg-perl all 1.19.0.5ubuntu2.4 [212 kB] +Get:33 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 dpkg-dev all 1.19.0.5ubuntu2.4 [607 kB] +Get:34 http://archive.ubuntu.com/ubuntu bionic/main amd64 build-essential amd64 12.4ubuntu1 [4758 B] +Get:35 http://archive.ubuntu.com/ubuntu bionic/main amd64 msr-tools amd64 1.3-2build1 [9760 B] +Get:36 http://archive.ubuntu.com/ubuntu bionic/main amd64 cpu-checker amd64 0.7-0ubuntu7 [6862 B] +Get:37 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-lib2to3 all 3.6.9-1~18.04 [77.4 kB] +Get:38 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-distutils all 3.6.9-1~18.04 [144 kB] +Get:39 http://archive.ubuntu.com/ubuntu bionic/main amd64 dh-python all 3.20180325ubuntu2 [89.2 kB] +Get:40 http://archive.ubuntu.com/ubuntu bionic/main amd64 libfakeroot amd64 1.22-2ubuntu1 [25.9 kB] +Get:41 http://archive.ubuntu.com/ubuntu bionic/main amd64 fakeroot amd64 1.22-2ubuntu1 [62.3 kB] +Get:42 http://archive.ubuntu.com/ubuntu bionic/main amd64 genisoimage amd64 9:1.1.11-3ubuntu2 [328 kB] +Get:43 http://archive.ubuntu.com/ubuntu bionic/main amd64 libnl-3-200 amd64 3.2.29-0ubuntu3 [52.8 kB] +Get:44 http://archive.ubuntu.com/ubuntu bionic/main amd64 libnl-route-3-200 amd64 3.2.29-0ubuntu3 [146 kB] +Get:45 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libibverbs1 amd64 17.1-1ubuntu0.2 [44.4 kB] +Get:46 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 ibverbs-providers amd64 17.1-1ubuntu0.2 [160 kB] +Get:47 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libaio1 amd64 0.3.110-5ubuntu0.1 [6476 B] +Get:48 http://archive.ubuntu.com/ubuntu bionic/main amd64 libalgorithm-diff-perl all 1.19.03-1 [47.6 kB] +Get:49 http://archive.ubuntu.com/ubuntu bionic/main amd64 libalgorithm-diff-xs-perl amd64 0.04-5 [11.1 kB] +Get:50 http://archive.ubuntu.com/ubuntu bionic/main amd64 libalgorithm-merge-perl all 0.08-3 [12.0 kB] +Get:51 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libexpat1-dev amd64 2.2.5-3ubuntu0.7 [124 kB] +Get:52 http://archive.ubuntu.com/ubuntu bionic/main amd64 libfile-fcntllock-perl amd64 0.22-3build2 [33.2 kB] +Get:53 http://archive.ubuntu.com/ubuntu bionic/main amd64 libiscsi7 amd64 1.17.0-1.1 [55.4 kB] +Get:54 http://archive.ubuntu.com/ubuntu bionic/main amd64 libnspr4 amd64 2:4.18-1ubuntu1 [112 kB] +Get:55 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libnss3 amd64 2:3.35-2ubuntu2.14 [1220 kB] +Get:56 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libpython3.6-dev amd64 3.6.9-1~18.04ubuntu1.7 [44.9 MB] +Get:57 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libpython3-dev amd64 3.6.7-1~18.04 [7328 B] +Get:58 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 librados2 amd64 12.2.13-0ubuntu0.18.04.10 [2725 kB] +Get:59 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 librbd1 amd64 12.2.13-0ubuntu0.18.04.10 [923 kB] +Get:60 http://archive.ubuntu.com/ubuntu bionic/main amd64 manpages-dev all 4.15-1 [2217 kB] +Get:61 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 python-pip-whl all 9.0.1-2.3~ubuntu1.18.04.5 [1653 kB] +Get:62 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-crypto amd64 2.6.1-8ubuntu2 [244 kB] +Get:63 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3.6-dev amd64 3.6.9-1~18.04ubuntu1.7 [511 kB] +Get:64 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-dev amd64 3.6.7-1~18.04 [1288 B] +Get:65 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-secretstorage all 2.3.1-2 [12.1 kB] +Get:66 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-keyring all 10.6.0-1 [26.7 kB] +Get:67 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-keyrings.alt all 3.0-1 [16.6 kB] +Get:68 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 python3-pip all 9.0.1-2.3~ubuntu1.18.04.5 [114 kB] +Get:69 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-setuptools all 39.0.1-2 [248 kB] +Get:70 http://archive.ubuntu.com/ubuntu bionic/universe amd64 python3-virtualenv all 15.1.0+ds-1.1 [43.4 kB] +Get:71 http://archive.ubuntu.com/ubuntu bionic/universe amd64 python3-wheel all 0.30.0-0.2 [36.5 kB] +Get:72 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-xdg all 0.25-4ubuntu1.1 [31.3 kB] +Get:73 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 qemu-block-extra amd64 1:2.11+dfsg-1ubuntu7.39 [42.0 kB] +Get:74 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 qemu-utils amd64 1:2.11+dfsg-1ubuntu7.39 [871 kB] +Get:75 http://archive.ubuntu.com/ubuntu bionic/main amd64 sharutils amd64 1:4.15.2-3 [155 kB] +Get:76 http://archive.ubuntu.com/ubuntu bionic/main amd64 ubuntu-fan all 0.12.10 [34.7 kB] +Get:77 http://archive.ubuntu.com/ubuntu bionic/universe amd64 virtualenv all 15.1.0+ds-1.1 [4476 B] +Get:78 http://archive.ubuntu.com/ubuntu bionic/main amd64 cloud-image-utils all 0.30-0ubuntu5 [16.9 kB] +Get:79 http://archive.ubuntu.com/ubuntu bionic/main amd64 cloud-utils all 0.30-0ubuntu5 [1596 B] +dpkg-preconfigure: unable to re-open stdin: No such file or directory +Fetched 98.2 MB in 4s (22.2 MB/s) +Selecting previously unselected package binutils-common:amd64. +(Reading database ... 29038 files and directories currently installed.) +Preparing to unpack .../00-binutils-common_2.30-21ubuntu1~18.04.7_amd64.deb ... +Unpacking binutils-common:amd64 (2.30-21ubuntu1~18.04.7) ... +Selecting previously unselected package libbinutils:amd64. +Preparing to unpack .../01-libbinutils_2.30-21ubuntu1~18.04.7_amd64.deb ... +Unpacking libbinutils:amd64 (2.30-21ubuntu1~18.04.7) ... +Selecting previously unselected package binutils-x86-64-linux-gnu. +Preparing to unpack .../02-binutils-x86-64-linux-gnu_2.30-21ubuntu1~18.04.7_amd64.deb ... +Unpacking binutils-x86-64-linux-gnu (2.30-21ubuntu1~18.04.7) ... +Selecting previously unselected package binutils. +Preparing to unpack .../03-binutils_2.30-21ubuntu1~18.04.7_amd64.deb ... +Unpacking binutils (2.30-21ubuntu1~18.04.7) ... +Selecting previously unselected package bridge-utils. +Preparing to unpack .../04-bridge-utils_1.5-15ubuntu1_amd64.deb ... +Unpacking bridge-utils (1.5-15ubuntu1) ... +Selecting previously unselected package libc-dev-bin. +Preparing to unpack .../05-libc-dev-bin_2.27-3ubuntu1.6_amd64.deb ... +Unpacking libc-dev-bin (2.27-3ubuntu1.6) ... +Selecting previously unselected package linux-libc-dev:amd64. +Preparing to unpack .../06-linux-libc-dev_4.15.0-187.198_amd64.deb ... +Unpacking linux-libc-dev:amd64 (4.15.0-187.198) ... +Selecting previously unselected package libc6-dev:amd64. +Preparing to unpack .../07-libc6-dev_2.27-3ubuntu1.6_amd64.deb ... +Unpacking libc6-dev:amd64 (2.27-3ubuntu1.6) ... +Selecting previously unselected package gcc-7-base:amd64. +Preparing to unpack .../08-gcc-7-base_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking gcc-7-base:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package libisl19:amd64. +Preparing to unpack .../09-libisl19_0.19-1_amd64.deb ... +Unpacking libisl19:amd64 (0.19-1) ... +Selecting previously unselected package libmpc3:amd64. +Preparing to unpack .../10-libmpc3_1.1.0-1_amd64.deb ... +Unpacking libmpc3:amd64 (1.1.0-1) ... +Selecting previously unselected package cpp-7. +Preparing to unpack .../11-cpp-7_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking cpp-7 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package cpp. +Preparing to unpack .../12-cpp_4%3a7.4.0-1ubuntu2.3_amd64.deb ... +Unpacking cpp (4:7.4.0-1ubuntu2.3) ... +Selecting previously unselected package libcc1-0:amd64. +Preparing to unpack .../13-libcc1-0_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libcc1-0:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libgomp1:amd64. +Preparing to unpack .../14-libgomp1_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libgomp1:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libitm1:amd64. +Preparing to unpack .../15-libitm1_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libitm1:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libatomic1:amd64. +Preparing to unpack .../16-libatomic1_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libatomic1:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libasan4:amd64. +Preparing to unpack .../17-libasan4_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libasan4:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package liblsan0:amd64. +Preparing to unpack .../18-liblsan0_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking liblsan0:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libtsan0:amd64. +Preparing to unpack .../19-libtsan0_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libtsan0:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libubsan0:amd64. +Preparing to unpack .../20-libubsan0_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libubsan0:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package libcilkrts5:amd64. +Preparing to unpack .../21-libcilkrts5_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libcilkrts5:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package libmpx2:amd64. +Preparing to unpack .../22-libmpx2_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libmpx2:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libquadmath0:amd64. +Preparing to unpack .../23-libquadmath0_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libquadmath0:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libgcc-7-dev:amd64. +Preparing to unpack .../24-libgcc-7-dev_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libgcc-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package gcc-7. +Preparing to unpack .../25-gcc-7_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking gcc-7 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package gcc. +Preparing to unpack .../26-gcc_4%3a7.4.0-1ubuntu2.3_amd64.deb ... +Unpacking gcc (4:7.4.0-1ubuntu2.3) ... +Selecting previously unselected package libstdc++-7-dev:amd64. +Preparing to unpack .../27-libstdc++-7-dev_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libstdc++-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package g++-7. +Preparing to unpack .../28-g++-7_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking g++-7 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package g++. +Preparing to unpack .../29-g++_4%3a7.4.0-1ubuntu2.3_amd64.deb ... +Unpacking g++ (4:7.4.0-1ubuntu2.3) ... +Selecting previously unselected package make. +Preparing to unpack .../30-make_4.1-9.1ubuntu1_amd64.deb ... +Unpacking make (4.1-9.1ubuntu1) ... +Selecting previously unselected package libdpkg-perl. +Preparing to unpack .../31-libdpkg-perl_1.19.0.5ubuntu2.4_all.deb ... +Unpacking libdpkg-perl (1.19.0.5ubuntu2.4) ... +Selecting previously unselected package dpkg-dev. +Preparing to unpack .../32-dpkg-dev_1.19.0.5ubuntu2.4_all.deb ... +Unpacking dpkg-dev (1.19.0.5ubuntu2.4) ... +Selecting previously unselected package build-essential. +Preparing to unpack .../33-build-essential_12.4ubuntu1_amd64.deb ... +Unpacking build-essential (12.4ubuntu1) ... +Selecting previously unselected package msr-tools. +Preparing to unpack .../34-msr-tools_1.3-2build1_amd64.deb ... +Unpacking msr-tools (1.3-2build1) ... +Selecting previously unselected package cpu-checker. +Preparing to unpack .../35-cpu-checker_0.7-0ubuntu7_amd64.deb ... +Unpacking cpu-checker (0.7-0ubuntu7) ... +Selecting previously unselected package python3-lib2to3. +Preparing to unpack .../36-python3-lib2to3_3.6.9-1~18.04_all.deb ... +Unpacking python3-lib2to3 (3.6.9-1~18.04) ... +Selecting previously unselected package python3-distutils. +Preparing to unpack .../37-python3-distutils_3.6.9-1~18.04_all.deb ... +Unpacking python3-distutils (3.6.9-1~18.04) ... +Selecting previously unselected package dh-python. +Preparing to unpack .../38-dh-python_3.20180325ubuntu2_all.deb ... +Unpacking dh-python (3.20180325ubuntu2) ... +Selecting previously unselected package libfakeroot:amd64. +Preparing to unpack .../39-libfakeroot_1.22-2ubuntu1_amd64.deb ... +Unpacking libfakeroot:amd64 (1.22-2ubuntu1) ... +Selecting previously unselected package fakeroot. +Preparing to unpack .../40-fakeroot_1.22-2ubuntu1_amd64.deb ... +Unpacking fakeroot (1.22-2ubuntu1) ... +Selecting previously unselected package genisoimage. +Preparing to unpack .../41-genisoimage_9%3a1.1.11-3ubuntu2_amd64.deb ... +Unpacking genisoimage (9:1.1.11-3ubuntu2) ... +Selecting previously unselected package libnl-3-200:amd64. +Preparing to unpack .../42-libnl-3-200_3.2.29-0ubuntu3_amd64.deb ... +Unpacking libnl-3-200:amd64 (3.2.29-0ubuntu3) ... +Selecting previously unselected package libnl-route-3-200:amd64. +Preparing to unpack .../43-libnl-route-3-200_3.2.29-0ubuntu3_amd64.deb ... +Unpacking libnl-route-3-200:amd64 (3.2.29-0ubuntu3) ... +Selecting previously unselected package libibverbs1:amd64. +Preparing to unpack .../44-libibverbs1_17.1-1ubuntu0.2_amd64.deb ... +Unpacking libibverbs1:amd64 (17.1-1ubuntu0.2) ... +Selecting previously unselected package ibverbs-providers:amd64. +Preparing to unpack .../45-ibverbs-providers_17.1-1ubuntu0.2_amd64.deb ... +Unpacking ibverbs-providers:amd64 (17.1-1ubuntu0.2) ... +Selecting previously unselected package libaio1:amd64. +Preparing to unpack .../46-libaio1_0.3.110-5ubuntu0.1_amd64.deb ... +Unpacking libaio1:amd64 (0.3.110-5ubuntu0.1) ... +Selecting previously unselected package libalgorithm-diff-perl. +Preparing to unpack .../47-libalgorithm-diff-perl_1.19.03-1_all.deb ... +Unpacking libalgorithm-diff-perl (1.19.03-1) ... +Selecting previously unselected package libalgorithm-diff-xs-perl. +Preparing to unpack .../48-libalgorithm-diff-xs-perl_0.04-5_amd64.deb ... +Unpacking libalgorithm-diff-xs-perl (0.04-5) ... +Selecting previously unselected package libalgorithm-merge-perl. +Preparing to unpack .../49-libalgorithm-merge-perl_0.08-3_all.deb ... +Unpacking libalgorithm-merge-perl (0.08-3) ... +Selecting previously unselected package libexpat1-dev:amd64. +Preparing to unpack .../50-libexpat1-dev_2.2.5-3ubuntu0.7_amd64.deb ... +Unpacking libexpat1-dev:amd64 (2.2.5-3ubuntu0.7) ... +Selecting previously unselected package libfile-fcntllock-perl. +Preparing to unpack .../51-libfile-fcntllock-perl_0.22-3build2_amd64.deb ... +Unpacking libfile-fcntllock-perl (0.22-3build2) ... +Selecting previously unselected package libiscsi7:amd64. +Preparing to unpack .../52-libiscsi7_1.17.0-1.1_amd64.deb ... +Unpacking libiscsi7:amd64 (1.17.0-1.1) ... +Selecting previously unselected package libnspr4:amd64. +Preparing to unpack .../53-libnspr4_2%3a4.18-1ubuntu1_amd64.deb ... +Unpacking libnspr4:amd64 (2:4.18-1ubuntu1) ... +Selecting previously unselected package libnss3:amd64. +Preparing to unpack .../54-libnss3_2%3a3.35-2ubuntu2.14_amd64.deb ... +Unpacking libnss3:amd64 (2:3.35-2ubuntu2.14) ... +Selecting previously unselected package libpython3.6-dev:amd64. +Preparing to unpack .../55-libpython3.6-dev_3.6.9-1~18.04ubuntu1.7_amd64.deb ... +Unpacking libpython3.6-dev:amd64 (3.6.9-1~18.04ubuntu1.7) ... +Selecting previously unselected package libpython3-dev:amd64. +Preparing to unpack .../56-libpython3-dev_3.6.7-1~18.04_amd64.deb ... +Unpacking libpython3-dev:amd64 (3.6.7-1~18.04) ... +Selecting previously unselected package librados2. +Preparing to unpack .../57-librados2_12.2.13-0ubuntu0.18.04.10_amd64.deb ... +Unpacking librados2 (12.2.13-0ubuntu0.18.04.10) ... +Selecting previously unselected package librbd1. +Preparing to unpack .../58-librbd1_12.2.13-0ubuntu0.18.04.10_amd64.deb ... +Unpacking librbd1 (12.2.13-0ubuntu0.18.04.10) ... +Selecting previously unselected package manpages-dev. +Preparing to unpack .../59-manpages-dev_4.15-1_all.deb ... +Unpacking manpages-dev (4.15-1) ... +Selecting previously unselected package python-pip-whl. +Preparing to unpack .../60-python-pip-whl_9.0.1-2.3~ubuntu1.18.04.5_all.deb ... +Unpacking python-pip-whl (9.0.1-2.3~ubuntu1.18.04.5) ... +Selecting previously unselected package python3-crypto. +Preparing to unpack .../61-python3-crypto_2.6.1-8ubuntu2_amd64.deb ... +Unpacking python3-crypto (2.6.1-8ubuntu2) ... +Selecting previously unselected package python3.6-dev. +Preparing to unpack .../62-python3.6-dev_3.6.9-1~18.04ubuntu1.7_amd64.deb ... +Unpacking python3.6-dev (3.6.9-1~18.04ubuntu1.7) ... +Selecting previously unselected package python3-dev. +Preparing to unpack .../63-python3-dev_3.6.7-1~18.04_amd64.deb ... +Unpacking python3-dev (3.6.7-1~18.04) ... +Selecting previously unselected package python3-secretstorage. +Preparing to unpack .../64-python3-secretstorage_2.3.1-2_all.deb ... +Unpacking python3-secretstorage (2.3.1-2) ... +Selecting previously unselected package python3-keyring. +Preparing to unpack .../65-python3-keyring_10.6.0-1_all.deb ... +Unpacking python3-keyring (10.6.0-1) ... +Selecting previously unselected package python3-keyrings.alt. +Preparing to unpack .../66-python3-keyrings.alt_3.0-1_all.deb ... +Unpacking python3-keyrings.alt (3.0-1) ... +Selecting previously unselected package python3-pip. +Preparing to unpack .../67-python3-pip_9.0.1-2.3~ubuntu1.18.04.5_all.deb ... +Unpacking python3-pip (9.0.1-2.3~ubuntu1.18.04.5) ... +Selecting previously unselected package python3-setuptools. +Preparing to unpack .../68-python3-setuptools_39.0.1-2_all.deb ... +Unpacking python3-setuptools (39.0.1-2) ... +Selecting previously unselected package python3-virtualenv. +Preparing to unpack .../69-python3-virtualenv_15.1.0+ds-1.1_all.deb ... +Unpacking python3-virtualenv (15.1.0+ds-1.1) ... +Selecting previously unselected package python3-wheel. +Preparing to unpack .../70-python3-wheel_0.30.0-0.2_all.deb ... +Unpacking python3-wheel (0.30.0-0.2) ... +Selecting previously unselected package python3-xdg. +Preparing to unpack .../71-python3-xdg_0.25-4ubuntu1.1_all.deb ... +Unpacking python3-xdg (0.25-4ubuntu1.1) ... +Selecting previously unselected package qemu-block-extra:amd64. +Preparing to unpack .../72-qemu-block-extra_1%3a2.11+dfsg-1ubuntu7.39_amd64.deb ... +Unpacking qemu-block-extra:amd64 (1:2.11+dfsg-1ubuntu7.39) ... +Selecting previously unselected package qemu-utils. +Preparing to unpack .../73-qemu-utils_1%3a2.11+dfsg-1ubuntu7.39_amd64.deb ... +Unpacking qemu-utils (1:2.11+dfsg-1ubuntu7.39) ... +Selecting previously unselected package sharutils. +Preparing to unpack .../74-sharutils_1%3a4.15.2-3_amd64.deb ... +Unpacking sharutils (1:4.15.2-3) ... +Selecting previously unselected package ubuntu-fan. +Preparing to unpack .../75-ubuntu-fan_0.12.10_all.deb ... +Unpacking ubuntu-fan (0.12.10) ... +Selecting previously unselected package virtualenv. +Preparing to unpack .../76-virtualenv_15.1.0+ds-1.1_all.deb ... +Unpacking virtualenv (15.1.0+ds-1.1) ... +Selecting previously unselected package cloud-image-utils. +Preparing to unpack .../77-cloud-image-utils_0.30-0ubuntu5_all.deb ... +Unpacking cloud-image-utils (0.30-0ubuntu5) ... +Selecting previously unselected package cloud-utils. +Preparing to unpack .../78-cloud-utils_0.30-0ubuntu5_all.deb ... +Unpacking cloud-utils (0.30-0ubuntu5) ... +Setting up libquadmath0:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up libgomp1:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up libatomic1:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up python-pip-whl (9.0.1-2.3~ubuntu1.18.04.5) ... +Setting up libcc1-0:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up make (4.1-9.1ubuntu1) ... +Setting up python3-crypto (2.6.1-8ubuntu2) ... +Setting up libtsan0:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up sharutils (1:4.15.2-3) ... +Setting up libiscsi7:amd64 (1.17.0-1.1) ... +Setting up python3-xdg (0.25-4ubuntu1.1) ... +Setting up python3-keyrings.alt (3.0-1) ... +Setting up linux-libc-dev:amd64 (4.15.0-187.198) ... +Setting up genisoimage (9:1.1.11-3ubuntu2) ... +Setting up libdpkg-perl (1.19.0.5ubuntu2.4) ... +Setting up python3-wheel (0.30.0-0.2) ... +Setting up msr-tools (1.3-2build1) ... +Setting up libnspr4:amd64 (2:4.18-1ubuntu1) ... +Setting up bridge-utils (1.5-15ubuntu1) ... +Setting up liblsan0:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up gcc-7-base:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up binutils-common:amd64 (2.30-21ubuntu1~18.04.7) ... +Setting up libfile-fcntllock-perl (0.22-3build2) ... +Setting up libmpx2:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up libaio1:amd64 (0.3.110-5ubuntu0.1) ... +Setting up ubuntu-fan (0.12.10) ... +Created symlink /etc/systemd/system/multi-user.target.wants/ubuntu-fan.service → /lib/systemd/system/ubuntu-fan.service. +Setting up cpu-checker (0.7-0ubuntu7) ... +Setting up libfakeroot:amd64 (1.22-2ubuntu1) ... +Setting up libalgorithm-diff-perl (1.19.03-1) ... +Setting up libmpc3:amd64 (1.1.0-1) ... +Setting up libc-dev-bin (2.27-3ubuntu1.6) ... +Setting up libnl-3-200:amd64 (3.2.29-0ubuntu3) ... +Setting up python3-lib2to3 (3.6.9-1~18.04) ... +Setting up python3-secretstorage (2.3.1-2) ... +Setting up manpages-dev (4.15-1) ... +Setting up libc6-dev:amd64 (2.27-3ubuntu1.6) ... +Setting up python3-distutils (3.6.9-1~18.04) ... +Setting up libitm1:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up libisl19:amd64 (0.19-1) ... +Setting up libasan4:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up python3-keyring (10.6.0-1) ... +Setting up libbinutils:amd64 (2.30-21ubuntu1~18.04.7) ... +Setting up libcilkrts5:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up libubsan0:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up libnss3:amd64 (2:3.35-2ubuntu2.14) ... +Setting up libnl-route-3-200:amd64 (3.2.29-0ubuntu3) ... +Setting up fakeroot (1.22-2ubuntu1) ... +update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode +Setting up libgcc-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up cpp-7 (7.5.0-3ubuntu1~18.04) ... +Setting up libstdc++-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up libalgorithm-merge-perl (0.08-3) ... +Setting up libalgorithm-diff-xs-perl (0.04-5) ... +Setting up python3-virtualenv (15.1.0+ds-1.1) ... +Setting up python3-pip (9.0.1-2.3~ubuntu1.18.04.5) ... +Setting up libexpat1-dev:amd64 (2.2.5-3ubuntu0.7) ... +Setting up python3-setuptools (39.0.1-2) ... +Setting up dh-python (3.20180325ubuntu2) ... +Setting up virtualenv (15.1.0+ds-1.1) ... +Setting up binutils-x86-64-linux-gnu (2.30-21ubuntu1~18.04.7) ... +Setting up libibverbs1:amd64 (17.1-1ubuntu0.2) ... +Setting up cpp (4:7.4.0-1ubuntu2.3) ... +Setting up libpython3.6-dev:amd64 (3.6.9-1~18.04ubuntu1.7) ... +Setting up librados2 (12.2.13-0ubuntu0.18.04.10) ... +Setting up ibverbs-providers:amd64 (17.1-1ubuntu0.2) ... +Setting up binutils (2.30-21ubuntu1~18.04.7) ... +Setting up python3.6-dev (3.6.9-1~18.04ubuntu1.7) ... +Setting up libpython3-dev:amd64 (3.6.7-1~18.04) ... +Setting up gcc-7 (7.5.0-3ubuntu1~18.04) ... +Setting up g++-7 (7.5.0-3ubuntu1~18.04) ... +Setting up python3-dev (3.6.7-1~18.04) ... +Setting up librbd1 (12.2.13-0ubuntu0.18.04.10) ... +Setting up gcc (4:7.4.0-1ubuntu2.3) ... +Setting up qemu-block-extra:amd64 (1:2.11+dfsg-1ubuntu7.39) ... +Setting up qemu-utils (1:2.11+dfsg-1ubuntu7.39) ... +Setting up dpkg-dev (1.19.0.5ubuntu2.4) ... +Setting up g++ (4:7.4.0-1ubuntu2.3) ... +update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode +Setting up cloud-image-utils (0.30-0ubuntu5) ... +Setting up build-essential (12.4ubuntu1) ... +Setting up cloud-utils (0.30-0ubuntu5) ... +Processing triggers for install-info (6.5.0.dfsg.1-2) ... +Processing triggers for libc-bin (2.27-3ubuntu1.6) ... +Processing triggers for systemd (237-3ubuntu10.53) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... +Processing triggers for ureadahead (0.100.0-21) ... ++ echo 'Installing Juju agent 2.9.31-ubuntu-amd64' +Installing Juju agent 2.9.31-ubuntu-amd64 ++ lxc exec juju-bionic-base -- mkdir -p /var/lib/juju/tools/2.9.31-ubuntu-amd64/ ++ lxc exec juju-bionic-base -- curl -sS --connect-timeout 20 --noproxy '*' --insecure -o /var/lib/juju/tools/2.9.31-ubuntu-amd64/tools.tar.gz https://streams.canonical.com/juju/tools/agent/2.9.31/juju-2.9.31-ubuntu-amd64.tgz ++ lxc exec juju-bionic-base -- tar zxf /var/lib/juju/tools/2.9.31-ubuntu-amd64/tools.tar.gz -C /var/lib/juju/tools/2.9.31-ubuntu-amd64 + +gzip: stdin: not in gzip format +tar: Child returned status 1 +tar: Error is not recoverable: exiting now ++ true ++ lxc stop juju-bionic-base ++ lxc image delete juju/bionic/amd64 +Error: not found ++ true ++ lxc image delete clean-bionic +++ date +%Y%m%d ++ lxc publish juju-bionic-base --alias juju/bionic/amd64 'description=bionic juju dev image (20220616)' +Instance published with fingerprint: cdb957d77b9e558ef961336cf35066c284e773802b595838f92080a9e34b4240 ++ lxc delete juju-bionic-base -f +Finished installation of juju + +k8s substrate added as cloud "k8scloud" with storage provisioned +by the existing "openebs-hostpath" storage class. +You can now bootstrap to this cloud by running 'juju bootstrap k8scloud'. +Creating Juju controller "osm" on k8scloud +Bootstrap to generic Kubernetes cluster +Fetching Juju Dashboard 0.8.1 +Creating k8s resources for controller "controller-osm" +Downloading images +Starting controller pod +Bootstrap agent now started +Contacting Juju controller at 192.168.64.22 to verify accessibility... + +Bootstrap complete, controller "osm" is now available in namespace "controller-osm" + +Now you can run + juju add-model +to create a new model to deploy k8s workloads. +Can't load /home/ubuntu/.rnd into RNG +140682814927296:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:88:Filename=/home/ubuntu/.rnd +Generating a RSA private key +.........+++++ +..........+++++ +writing new private key to '/tmp/.osm/client.key' +----- +Cloud "lxd-cloud" added to controller "osm". +WARNING loading credentials: credentials for cloud lxd-cloud not found +To upload a credential to the controller for cloud "lxd-cloud", use +* 'add-model' with --credential option or +* 'add-credential -c lxd-cloud'. +Using cloud "lxd-cloud" from the controller to verify credentials. +Controller credential "lxd-cloud" for user "admin" for cloud "lxd-cloud" on controller "osm" added. +For more information, see ‘juju show-credential lxd-cloud lxd-cloud’. +Pulling and generating docker images +Pulling docker images +Using default tag: latest +latest: Pulling from wurstmeister/zookeeper +a3ed95caeb02: Pulling fs layer +ef38b711a50f: Pulling fs layer +e057c74597c7: Pulling fs layer +666c214f6385: Pulling fs layer +c3d6a96f1ffc: Pulling fs layer +3fe26a83e0ca: Pulling fs layer +666c214f6385: Waiting +c3d6a96f1ffc: Waiting +3fe26a83e0ca: Waiting +3d3a7dd3a3b1: Pulling fs layer +f8cc938abe5f: Pulling fs layer +9978b75f7a58: Pulling fs layer +4d4dbcc8f8cc: Pulling fs layer +3d3a7dd3a3b1: Waiting +f8cc938abe5f: Waiting +9978b75f7a58: Waiting +4d4dbcc8f8cc: Waiting +8b130a9baa49: Pulling fs layer +6b9611650a73: Pulling fs layer +5df5aac51927: Pulling fs layer +76eea4448d9b: Pulling fs layer +8b66990876c6: Pulling fs layer +f0dd38204b6f: Pulling fs layer +8b130a9baa49: Waiting +6b9611650a73: Waiting +5df5aac51927: Waiting +8b66990876c6: Waiting +f0dd38204b6f: Waiting +76eea4448d9b: Waiting +a3ed95caeb02: Verifying Checksum +a3ed95caeb02: Download complete +e057c74597c7: Verifying Checksum +e057c74597c7: Download complete +666c214f6385: Verifying Checksum +666c214f6385: Download complete +c3d6a96f1ffc: Verifying Checksum +c3d6a96f1ffc: Download complete +a3ed95caeb02: Pull complete +3fe26a83e0ca: Verifying Checksum +3fe26a83e0ca: Download complete +f8cc938abe5f: Verifying Checksum +f8cc938abe5f: Download complete +9978b75f7a58: Verifying Checksum +9978b75f7a58: Download complete +4d4dbcc8f8cc: Verifying Checksum +4d4dbcc8f8cc: Download complete +ef38b711a50f: Verifying Checksum +ef38b711a50f: Download complete +6b9611650a73: Verifying Checksum +6b9611650a73: Download complete +8b130a9baa49: Verifying Checksum +8b130a9baa49: Download complete +76eea4448d9b: Verifying Checksum +76eea4448d9b: Download complete +8b66990876c6: Verifying Checksum +8b66990876c6: Download complete +5df5aac51927: Verifying Checksum +5df5aac51927: Download complete +f0dd38204b6f: Verifying Checksum +f0dd38204b6f: Download complete +3d3a7dd3a3b1: Verifying Checksum +3d3a7dd3a3b1: Download complete +ef38b711a50f: Pull complete +e057c74597c7: Pull complete +666c214f6385: Pull complete +c3d6a96f1ffc: Pull complete +3fe26a83e0ca: Pull complete +3d3a7dd3a3b1: Pull complete +f8cc938abe5f: Pull complete +9978b75f7a58: Pull complete +4d4dbcc8f8cc: Pull complete +8b130a9baa49: Pull complete +6b9611650a73: Pull complete +5df5aac51927: Pull complete +76eea4448d9b: Pull complete +8b66990876c6: Pull complete +f0dd38204b6f: Pull complete +Digest: sha256:7a7fd44a72104bfbd24a77844bad5fabc86485b036f988ea927d1780782a6680 +Status: Downloaded newer image for wurstmeister/zookeeper:latest +docker.io/wurstmeister/zookeeper:latest +2.11-1.0.2: Pulling from wurstmeister/kafka +540db60ca938: Pulling fs layer +f0698009749d: Pulling fs layer +6f908e2198d8: Pulling fs layer +03d1b1f23ba0: Pulling fs layer +7e646c44bafc: Pulling fs layer +03d1b1f23ba0: Waiting +7e646c44bafc: Waiting +540db60ca938: Verifying Checksum +540db60ca938: Download complete +6f908e2198d8: Verifying Checksum +6f908e2198d8: Download complete +7e646c44bafc: Verifying Checksum +7e646c44bafc: Download complete +540db60ca938: Pull complete +f0698009749d: Verifying Checksum +f0698009749d: Download complete +03d1b1f23ba0: Verifying Checksum +03d1b1f23ba0: Download complete +f0698009749d: Pull complete +6f908e2198d8: Pull complete +03d1b1f23ba0: Pull complete +7e646c44bafc: Pull complete +Digest: sha256:ec1098369b4ccea77489b233172789c8ac29b545b9243545386549c52d07785b +Status: Downloaded newer image for wurstmeister/kafka:2.11-1.0.2 +docker.io/wurstmeister/kafka:2.11-1.0.2 +Using default tag: latest +latest: Pulling from library/mongo +d7bfe07ed847: Pulling fs layer +97ef66a8492a: Pulling fs layer +20cec14c8f9e: Pulling fs layer +38c3018eb09a: Pulling fs layer +ccc9e1c2556b: Pulling fs layer +593c62d03532: Pulling fs layer +1a103a446c3f: Pulling fs layer +be887b845d3f: Pulling fs layer +e5543880b183: Pulling fs layer +ccc9e1c2556b: Waiting +593c62d03532: Waiting +1a103a446c3f: Waiting +be887b845d3f: Waiting +e5543880b183: Waiting +38c3018eb09a: Waiting +97ef66a8492a: Verifying Checksum +97ef66a8492a: Download complete +20cec14c8f9e: Verifying Checksum +20cec14c8f9e: Download complete +d7bfe07ed847: Verifying Checksum +d7bfe07ed847: Download complete +ccc9e1c2556b: Verifying Checksum +ccc9e1c2556b: Download complete +38c3018eb09a: Verifying Checksum +38c3018eb09a: Download complete +593c62d03532: Verifying Checksum +593c62d03532: Download complete +1a103a446c3f: Verifying Checksum +1a103a446c3f: Download complete +e5543880b183: Verifying Checksum +e5543880b183: Download complete +d7bfe07ed847: Pull complete +97ef66a8492a: Pull complete +20cec14c8f9e: Pull complete +be887b845d3f: Verifying Checksum +be887b845d3f: Download complete +38c3018eb09a: Pull complete +ccc9e1c2556b: Pull complete +593c62d03532: Pull complete +1a103a446c3f: Pull complete +be887b845d3f: Pull complete +e5543880b183: Pull complete +Digest: sha256:37e84d3dd30cdfb5472ec42b8a6b4dc6ca7cacd91ebcfa0410a54528bbc5fa6d +Status: Downloaded newer image for mongo:latest +docker.io/library/mongo:latest +v2.28.1: Pulling from prom/prometheus +aa2a8d90b84c: Pulling fs layer +b45d31ee2d7f: Pulling fs layer +da9de9139824: Pulling fs layer +d04e751b88d5: Pulling fs layer +13f11ea3536c: Pulling fs layer +1d81771985c9: Pulling fs layer +d471c28936c9: Pulling fs layer +827e29e97e58: Pulling fs layer +9a0bd55ef653: Pulling fs layer +16e358518d2f: Pulling fs layer +bfdb42c9d185: Pulling fs layer +d83e6d5e5f1b: Pulling fs layer +d471c28936c9: Waiting +d04e751b88d5: Waiting +13f11ea3536c: Waiting +1d81771985c9: Waiting +827e29e97e58: Waiting +9a0bd55ef653: Waiting +16e358518d2f: Waiting +bfdb42c9d185: Waiting +d83e6d5e5f1b: Waiting +b45d31ee2d7f: Verifying Checksum +b45d31ee2d7f: Download complete +aa2a8d90b84c: Verifying Checksum +aa2a8d90b84c: Download complete +13f11ea3536c: Verifying Checksum +13f11ea3536c: Download complete +aa2a8d90b84c: Pull complete +1d81771985c9: Verifying Checksum +1d81771985c9: Download complete +da9de9139824: Verifying Checksum +da9de9139824: Download complete +d471c28936c9: Verifying Checksum +d471c28936c9: Download complete +827e29e97e58: Verifying Checksum +827e29e97e58: Download complete +d04e751b88d5: Verifying Checksum +d04e751b88d5: Download complete +9a0bd55ef653: Verifying Checksum +9a0bd55ef653: Download complete +b45d31ee2d7f: Pull complete +16e358518d2f: Verifying Checksum +16e358518d2f: Download complete +bfdb42c9d185: Verifying Checksum +bfdb42c9d185: Download complete +d83e6d5e5f1b: Verifying Checksum +d83e6d5e5f1b: Download complete +da9de9139824: Pull complete +d04e751b88d5: Pull complete +13f11ea3536c: Pull complete +1d81771985c9: Pull complete +d471c28936c9: Pull complete +827e29e97e58: Pull complete +9a0bd55ef653: Pull complete +16e358518d2f: Pull complete +bfdb42c9d185: Pull complete +d83e6d5e5f1b: Pull complete +Digest: sha256:5c030438c1e4c86bdc7428f24ee1ad18476eefdfa8a7f76a8ccc9b74f1970d81 +Status: Downloaded newer image for prom/prometheus:v2.28.1 +docker.io/prom/prometheus:v2.28.1 +latest: Pulling from google/cadvisor +ff3a5c916c92: Pulling fs layer +44a45bb65cdf: Pulling fs layer +0bbe1a2fe2a6: Pulling fs layer +ff3a5c916c92: Verifying Checksum +ff3a5c916c92: Download complete +0bbe1a2fe2a6: Verifying Checksum +0bbe1a2fe2a6: Download complete +44a45bb65cdf: Verifying Checksum +44a45bb65cdf: Download complete +ff3a5c916c92: Pull complete +44a45bb65cdf: Pull complete +0bbe1a2fe2a6: Pull complete +Digest: sha256:815386ebbe9a3490f38785ab11bda34ec8dacf4634af77b8912832d4f85dca04 +Status: Downloaded newer image for google/cadvisor:latest +docker.io/google/cadvisor:latest +8.1.1: Pulling from grafana/grafana +540db60ca938: Already exists +b91d21fc1834: Pulling fs layer +94b744eb7640: Pulling fs layer +06133c221b55: Pulling fs layer +dc4b422eea7f: Pulling fs layer +4f4fb700ef54: Pulling fs layer +581ba695933f: Pulling fs layer +688726506e9e: Pulling fs layer +dc4b422eea7f: Waiting +4f4fb700ef54: Waiting +581ba695933f: Waiting +688726506e9e: Waiting +94b744eb7640: Verifying Checksum +94b744eb7640: Download complete +b91d21fc1834: Verifying Checksum +b91d21fc1834: Download complete +b91d21fc1834: Pull complete +06133c221b55: Download complete +4f4fb700ef54: Verifying Checksum +4f4fb700ef54: Download complete +581ba695933f: Verifying Checksum +581ba695933f: Download complete +688726506e9e: Verifying Checksum +688726506e9e: Download complete +94b744eb7640: Pull complete +dc4b422eea7f: Verifying Checksum +dc4b422eea7f: Download complete +06133c221b55: Pull complete +dc4b422eea7f: Pull complete +4f4fb700ef54: Pull complete +581ba695933f: Pull complete +688726506e9e: Pull complete +Digest: sha256:c328587322a83c38384cb3799387c3eb3c5b96d31ca5579439400694868f5007 +Status: Downloaded newer image for grafana/grafana:8.1.1 +docker.io/grafana/grafana:8.1.1 +1.15.6: Pulling from kiwigrid/k8s-sidecar +59bf1c3509f3: Already exists +07a400e93df3: Pulling fs layer +812206835f4c: Pulling fs layer +73342013dbd4: Pulling fs layer +27450111daa5: Pulling fs layer +b6dc38f52fdb: Pulling fs layer +c36e6a83ef93: Pulling fs layer +7b23ce5cb56a: Pulling fs layer +27450111daa5: Waiting +b6dc38f52fdb: Waiting +c36e6a83ef93: Waiting +7b23ce5cb56a: Waiting +07a400e93df3: Verifying Checksum +07a400e93df3: Download complete +73342013dbd4: Verifying Checksum +73342013dbd4: Download complete +b6dc38f52fdb: Verifying Checksum +b6dc38f52fdb: Download complete +27450111daa5: Verifying Checksum +27450111daa5: Download complete +812206835f4c: Verifying Checksum +812206835f4c: Download complete +c36e6a83ef93: Verifying Checksum +c36e6a83ef93: Download complete +07a400e93df3: Pull complete +7b23ce5cb56a: Verifying Checksum +7b23ce5cb56a: Download complete +812206835f4c: Pull complete +73342013dbd4: Pull complete +27450111daa5: Pull complete +b6dc38f52fdb: Pull complete +c36e6a83ef93: Pull complete +7b23ce5cb56a: Pull complete +Digest: sha256:1f025ae37b7b20d63bffd179e5e6f972039dd53d9646388c0a8c456229c7bbcb +Status: Downloaded newer image for kiwigrid/k8s-sidecar:1.15.6 +docker.io/kiwigrid/k8s-sidecar:1.15.6 +10: Pulling from library/mariadb +405f018f9d1d: Pulling fs layer +7a85079b8234: Pulling fs layer +579c7ff691b1: Pulling fs layer +4976663b5d6d: Pulling fs layer +169024b1fb13: Pulling fs layer +c0ffe8ce897f: Pulling fs layer +b583c09d23c3: Pulling fs layer +9b9f0c08d08f: Pulling fs layer +9cd51f984586: Pulling fs layer +d9f506bb8aca: Pulling fs layer +24d689f79ba4: Pulling fs layer +4976663b5d6d: Waiting +c0ffe8ce897f: Waiting +b583c09d23c3: Waiting +9b9f0c08d08f: Waiting +9cd51f984586: Waiting +d9f506bb8aca: Waiting +24d689f79ba4: Waiting +169024b1fb13: Waiting +7a85079b8234: Verifying Checksum +7a85079b8234: Download complete +579c7ff691b1: Verifying Checksum +579c7ff691b1: Download complete +4976663b5d6d: Verifying Checksum +4976663b5d6d: Download complete +169024b1fb13: Verifying Checksum +169024b1fb13: Download complete +405f018f9d1d: Download complete +b583c09d23c3: Verifying Checksum +b583c09d23c3: Download complete +9b9f0c08d08f: Verifying Checksum +9b9f0c08d08f: Download complete +c0ffe8ce897f: Download complete +d9f506bb8aca: Verifying Checksum +d9f506bb8aca: Download complete +24d689f79ba4: Verifying Checksum +24d689f79ba4: Download complete +9cd51f984586: Verifying Checksum +9cd51f984586: Download complete +405f018f9d1d: Pull complete +7a85079b8234: Pull complete +579c7ff691b1: Pull complete +4976663b5d6d: Pull complete +169024b1fb13: Pull complete +c0ffe8ce897f: Pull complete +b583c09d23c3: Pull complete +9b9f0c08d08f: Pull complete +9cd51f984586: Pull complete +d9f506bb8aca: Pull complete +24d689f79ba4: Pull complete +Digest: sha256:88fcb7d92c7f61cd885c4d309c98461f3607aa6dbd57a2474be86e1956b36d13 +Status: Downloaded newer image for mariadb:10 +docker.io/library/mariadb:10 +5: Pulling from library/mysql +c1ad9731b2c7: Pulling fs layer +54f6eb0ee84d: Pulling fs layer +cffcf8691bc5: Pulling fs layer +89a783b5ac8a: Pulling fs layer +6a8393c7be5f: Pulling fs layer +af768d0b181e: Pulling fs layer +810d6aaaf54a: Pulling fs layer +81fe6daf2395: Pulling fs layer +5ccf426818fd: Pulling fs layer +68b838b06054: Pulling fs layer +1b606c4f93df: Pulling fs layer +89a783b5ac8a: Waiting +6a8393c7be5f: Waiting +af768d0b181e: Waiting +810d6aaaf54a: Waiting +81fe6daf2395: Waiting +5ccf426818fd: Waiting +68b838b06054: Waiting +1b606c4f93df: Waiting +54f6eb0ee84d: Verifying Checksum +54f6eb0ee84d: Download complete +cffcf8691bc5: Verifying Checksum +cffcf8691bc5: Download complete +89a783b5ac8a: Verifying Checksum +89a783b5ac8a: Download complete +c1ad9731b2c7: Verifying Checksum +c1ad9731b2c7: Download complete +6a8393c7be5f: Verifying Checksum +6a8393c7be5f: Download complete +810d6aaaf54a: Verifying Checksum +810d6aaaf54a: Download complete +81fe6daf2395: Verifying Checksum +81fe6daf2395: Download complete +68b838b06054: Verifying Checksum +68b838b06054: Download complete +af768d0b181e: Verifying Checksum +af768d0b181e: Download complete +1b606c4f93df: Verifying Checksum +1b606c4f93df: Download complete +5ccf426818fd: Verifying Checksum +5ccf426818fd: Download complete +c1ad9731b2c7: Pull complete +54f6eb0ee84d: Pull complete +cffcf8691bc5: Pull complete +89a783b5ac8a: Pull complete +6a8393c7be5f: Pull complete +af768d0b181e: Pull complete +810d6aaaf54a: Pull complete +81fe6daf2395: Pull complete +5ccf426818fd: Pull complete +68b838b06054: Pull complete +1b606c4f93df: Pull complete +Digest: sha256:7e99b2b8d5bca914ef31059858210f57b009c40375d647f0d4d65ecd01d6b1d5 +Status: Downloaded newer image for mysql:5 +docker.io/library/mysql:5 +Pulling OSM docker images +Pulling opensourcemano/mon:10 docker image +10: Pulling from opensourcemano/mon +d7bfe07ed847: Already exists +666000499d5e: Pulling fs layer +84a996cd9152: Pulling fs layer +5ddf9fe3b18e: Pulling fs layer +83d95b5d2abe: Pulling fs layer +e521c6a1c4d9: Pulling fs layer +b1508559ed03: Pulling fs layer +6a982fafa1b7: Pulling fs layer +549b7eb92cad: Pulling fs layer +c9de50434a02: Pulling fs layer +c35f1ae73537: Pulling fs layer +31cf9385e1a8: Pulling fs layer +1d47bf441f80: Pulling fs layer +83d95b5d2abe: Waiting +e521c6a1c4d9: Waiting +b1508559ed03: Waiting +6a982fafa1b7: Waiting +549b7eb92cad: Waiting +c9de50434a02: Waiting +c35f1ae73537: Waiting +31cf9385e1a8: Waiting +1d47bf441f80: Waiting +84a996cd9152: Verifying Checksum +84a996cd9152: Download complete +5ddf9fe3b18e: Verifying Checksum +5ddf9fe3b18e: Download complete +e521c6a1c4d9: Verifying Checksum +e521c6a1c4d9: Download complete +666000499d5e: Verifying Checksum +666000499d5e: Download complete +b1508559ed03: Verifying Checksum +b1508559ed03: Download complete +6a982fafa1b7: Verifying Checksum +6a982fafa1b7: Download complete +549b7eb92cad: Verifying Checksum +549b7eb92cad: Download complete +83d95b5d2abe: Verifying Checksum +83d95b5d2abe: Download complete +31cf9385e1a8: Verifying Checksum +31cf9385e1a8: Download complete +1d47bf441f80: Verifying Checksum +1d47bf441f80: Download complete +666000499d5e: Pull complete +84a996cd9152: Pull complete +c35f1ae73537: Verifying Checksum +c35f1ae73537: Download complete +c9de50434a02: Verifying Checksum +c9de50434a02: Download complete +5ddf9fe3b18e: Pull complete +83d95b5d2abe: Pull complete +e521c6a1c4d9: Pull complete +b1508559ed03: Pull complete +6a982fafa1b7: Pull complete +549b7eb92cad: Pull complete +c9de50434a02: Pull complete +c35f1ae73537: Pull complete +31cf9385e1a8: Pull complete +1d47bf441f80: Pull complete +Digest: sha256:f2949ef49ec402a7c958b027caaf6bd7638d6d9a685cfbb7ea0bdb825ecf1c40 +Status: Downloaded newer image for opensourcemano/mon:10 +docker.io/opensourcemano/mon:10 +Pulling opensourcemano/pol:10 docker image +10: Pulling from opensourcemano/pol +d7bfe07ed847: Already exists +666000499d5e: Already exists +331ca7211c2c: Pulling fs layer +b4f0f255e526: Pulling fs layer +6e63054a5e3a: Pulling fs layer +ef79034d4247: Pulling fs layer +bd8855c0c0ed: Pulling fs layer +40e7b2a24af3: Pulling fs layer +847e72a2b5c4: Pulling fs layer +f519278aa5a7: Pulling fs layer +cf540be444c5: Pulling fs layer +6dd0660bb340: Pulling fs layer +40e7b2a24af3: Waiting +847e72a2b5c4: Waiting +f519278aa5a7: Waiting +cf540be444c5: Waiting +6dd0660bb340: Waiting +ef79034d4247: Waiting +bd8855c0c0ed: Waiting +6e63054a5e3a: Verifying Checksum +6e63054a5e3a: Download complete +331ca7211c2c: Verifying Checksum +b4f0f255e526: Verifying Checksum +b4f0f255e526: Download complete +40e7b2a24af3: Verifying Checksum +40e7b2a24af3: Download complete +ef79034d4247: Verifying Checksum +ef79034d4247: Download complete +331ca7211c2c: Pull complete +847e72a2b5c4: Verifying Checksum +847e72a2b5c4: Download complete +f519278aa5a7: Verifying Checksum +f519278aa5a7: Download complete +cf540be444c5: Verifying Checksum +cf540be444c5: Download complete +6dd0660bb340: Verifying Checksum +6dd0660bb340: Download complete +b4f0f255e526: Pull complete +6e63054a5e3a: Pull complete +ef79034d4247: Pull complete +bd8855c0c0ed: Download complete +bd8855c0c0ed: Pull complete +40e7b2a24af3: Pull complete +847e72a2b5c4: Pull complete +f519278aa5a7: Pull complete +cf540be444c5: Pull complete +6dd0660bb340: Pull complete +Digest: sha256:05796c1ddc55eb01ec049d4629a7ce6e29ff05467640884c3443a9cb306c9b7a +Status: Downloaded newer image for opensourcemano/pol:10 +docker.io/opensourcemano/pol:10 +Pulling opensourcemano/nbi:10 docker image +10: Pulling from opensourcemano/nbi +d7bfe07ed847: Already exists +666000499d5e: Already exists +a5c90c150150: Pulling fs layer +e4b817d2e65a: Pulling fs layer +eba3ed4bb1de: Pulling fs layer +b1ca26a333d5: Pulling fs layer +e905ec2173fb: Pulling fs layer +355efc6e6c91: Pulling fs layer +b1ca26a333d5: Waiting +e905ec2173fb: Waiting +355efc6e6c91: Waiting +eba3ed4bb1de: Verifying Checksum +eba3ed4bb1de: Download complete +a5c90c150150: Verifying Checksum +b1ca26a333d5: Verifying Checksum +b1ca26a333d5: Download complete +e905ec2173fb: Verifying Checksum +e905ec2173fb: Download complete +355efc6e6c91: Verifying Checksum +355efc6e6c91: Download complete +e4b817d2e65a: Verifying Checksum +e4b817d2e65a: Download complete +a5c90c150150: Pull complete +e4b817d2e65a: Pull complete +eba3ed4bb1de: Pull complete +b1ca26a333d5: Pull complete +e905ec2173fb: Pull complete +355efc6e6c91: Pull complete +Digest: sha256:a3d4e3e9ba4ab531d87016a44eb52ce55c690a43ad181181aec31d9890167ae2 +Status: Downloaded newer image for opensourcemano/nbi:10 +docker.io/opensourcemano/nbi:10 +Pulling opensourcemano/keystone:10 docker image +10: Pulling from opensourcemano/keystone +d7bfe07ed847: Already exists +9e9f60ff75cd: Pulling fs layer +5c3b8b0cef84: Pulling fs layer +42380b15e5b5: Pulling fs layer +64f8d91d37db: Pulling fs layer +5faf5e255491: Pulling fs layer +64f8d91d37db: Waiting +5faf5e255491: Waiting +9e9f60ff75cd: Verifying Checksum +5c3b8b0cef84: Download complete +9e9f60ff75cd: Pull complete +5c3b8b0cef84: Pull complete +5faf5e255491: Verifying Checksum +5faf5e255491: Download complete +64f8d91d37db: Verifying Checksum +64f8d91d37db: Download complete +42380b15e5b5: Verifying Checksum +42380b15e5b5: Download complete +42380b15e5b5: Pull complete +64f8d91d37db: Pull complete +5faf5e255491: Pull complete +Digest: sha256:7c928ce8affe6315ef280f3cc9084875760f7ae6bd261165b25cac191317f53b +Status: Downloaded newer image for opensourcemano/keystone:10 +docker.io/opensourcemano/keystone:10 +Pulling opensourcemano/ro:10 docker image +10: Pulling from opensourcemano/ro +d7bfe07ed847: Already exists +666000499d5e: Already exists +38ec5619b74b: Pulling fs layer +2e15239e15a6: Pulling fs layer +25fed18cded9: Pulling fs layer +526f83fab57d: Pulling fs layer +a73d486191f0: Pulling fs layer +526f83fab57d: Waiting +a73d486191f0: Waiting +38ec5619b74b: Verifying Checksum +25fed18cded9: Download complete +526f83fab57d: Verifying Checksum +526f83fab57d: Download complete +a73d486191f0: Verifying Checksum +a73d486191f0: Download complete +38ec5619b74b: Pull complete +2e15239e15a6: Verifying Checksum +2e15239e15a6: Download complete +2e15239e15a6: Pull complete +25fed18cded9: Pull complete +526f83fab57d: Pull complete +a73d486191f0: Pull complete +Digest: sha256:c81de050cafaf8a7bfd17f169911e35db7ca399e7cbb44844fc202a18f37b24e +Status: Downloaded newer image for opensourcemano/ro:10 +docker.io/opensourcemano/ro:10 +Pulling opensourcemano/lcm:10 docker image +10: Pulling from opensourcemano/lcm +d7bfe07ed847: Already exists +666000499d5e: Already exists +84a996cd9152: Already exists +c72aaef6aaca: Pulling fs layer +b0b0eca3e362: Pulling fs layer +fc121576b870: Pulling fs layer +f33fd8c262d4: Pulling fs layer +3f88104e5ad5: Pulling fs layer +6182ae1ea9d5: Pulling fs layer +f56144a0caab: Pulling fs layer +d5cbfaf6d151: Pulling fs layer +87377ac48274: Pulling fs layer +e8a04fe4ab11: Pulling fs layer +24faec989806: Pulling fs layer +a668aecb68cc: Pulling fs layer +030993b75ae4: Pulling fs layer +55471db6284d: Pulling fs layer +f33fd8c262d4: Waiting +3f88104e5ad5: Waiting +6182ae1ea9d5: Waiting +f56144a0caab: Waiting +d5cbfaf6d151: Waiting +87377ac48274: Waiting +e8a04fe4ab11: Waiting +24faec989806: Waiting +a668aecb68cc: Waiting +030993b75ae4: Waiting +55471db6284d: Waiting +c72aaef6aaca: Verifying Checksum +c72aaef6aaca: Download complete +fc121576b870: Verifying Checksum +fc121576b870: Download complete +b0b0eca3e362: Verifying Checksum +b0b0eca3e362: Download complete +f33fd8c262d4: Verifying Checksum +f33fd8c262d4: Download complete +c72aaef6aaca: Pull complete +6182ae1ea9d5: Verifying Checksum +6182ae1ea9d5: Download complete +3f88104e5ad5: Verifying Checksum +3f88104e5ad5: Download complete +d5cbfaf6d151: Verifying Checksum +d5cbfaf6d151: Download complete +f56144a0caab: Download complete +24faec989806: Verifying Checksum +24faec989806: Download complete +a668aecb68cc: Verifying Checksum +a668aecb68cc: Download complete +030993b75ae4: Verifying Checksum +030993b75ae4: Download complete +55471db6284d: Verifying Checksum +55471db6284d: Download complete +87377ac48274: Verifying Checksum +87377ac48274: Download complete +e8a04fe4ab11: Verifying Checksum +e8a04fe4ab11: Download complete +b0b0eca3e362: Pull complete +fc121576b870: Pull complete +f33fd8c262d4: Pull complete +3f88104e5ad5: Pull complete +6182ae1ea9d5: Pull complete +f56144a0caab: Pull complete +d5cbfaf6d151: Pull complete +87377ac48274: Pull complete +e8a04fe4ab11: Pull complete +24faec989806: Pull complete +a668aecb68cc: Pull complete +030993b75ae4: Pull complete +55471db6284d: Pull complete +Digest: sha256:0ee76c9b9a00bb5c0fc91f4ed1718b5d3996d5754f49bb07186b6324bc106e83 +Status: Downloaded newer image for opensourcemano/lcm:10 +docker.io/opensourcemano/lcm:10 +Pulling opensourcemano/ng-ui:10 docker image +10: Pulling from opensourcemano/ng-ui +d7bfe07ed847: Already exists +9f115457b1a8: Pulling fs layer +efe1d7eba861: Pulling fs layer +5c807a19b6d9: Pulling fs layer +b6ff86d608be: Pulling fs layer +b6ff86d608be: Waiting +5c807a19b6d9: Verifying Checksum +5c807a19b6d9: Download complete +efe1d7eba861: Download complete +b6ff86d608be: Verifying Checksum +b6ff86d608be: Download complete +9f115457b1a8: Verifying Checksum +9f115457b1a8: Download complete +9f115457b1a8: Pull complete +efe1d7eba861: Pull complete +5c807a19b6d9: Pull complete +b6ff86d608be: Pull complete +Digest: sha256:ea3e575bc36748c4863bc03e6cc9c9e42e1b19a271f8f4c280b6b24e366e261f +Status: Downloaded newer image for opensourcemano/ng-ui:10 +docker.io/opensourcemano/ng-ui:10 +Pulling opensourcemano/osmclient:10 docker image +10: Pulling from opensourcemano/osmclient +d7bfe07ed847: Already exists +666000499d5e: Already exists +96d66c72f8e6: Pulling fs layer +2f1097e8c8db: Pulling fs layer +96d66c72f8e6: Verifying Checksum +96d66c72f8e6: Download complete +2f1097e8c8db: Verifying Checksum +2f1097e8c8db: Download complete +96d66c72f8e6: Pull complete +2f1097e8c8db: Pull complete +Digest: sha256:6bb8595031c6f4540fa0fd86f78878aa9dbd7b57bb40bcf87d481f500a52af7c +Status: Downloaded newer image for opensourcemano/osmclient:10 +docker.io/opensourcemano/osmclient:10 +Finished pulling and generating docker images +Doing a backup of existing env files +cp: cannot stat '/etc/osm/docker/keystone-db.env': No such file or directory +cp: cannot stat '/etc/osm/docker/keystone.env': No such file or directory +cp: cannot stat '/etc/osm/docker/lcm.env': No such file or directory +cp: cannot stat '/etc/osm/docker/mon.env': No such file or directory +cp: cannot stat '/etc/osm/docker/nbi.env': No such file or directory +cp: cannot stat '/etc/osm/docker/pol.env': No such file or directory +cp: cannot stat '/etc/osm/docker/ro-db.env': No such file or directory +cp: cannot stat '/etc/osm/docker/ro.env': No such file or directory +Generating docker env files +OSMLCM_DATABASE_COMMONKEY=h9ud8JHJl3oR1at0Uft43LwDeWqM2ONV +OSMLCM_VCA_HOST=192.168.64.22 +OSMLCM_VCA_SECRET=193f97a8f2e5d381b1c131c5f2187e3d +OSMLCM_VCA_PUBKEY=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGUIr+ppBgJtJx5vtX1DgPbvB1kmFZaREBEUhQV0iCrmQm8TIvC8weKMcXoIkODCIzc3/8/G9QEeCwVAclbH/gOgBlb2tjpvQVtURmnFn7SeKbrMcw8K9dnI2WZxC/l5ERS3jybLbpCEKGGywTpL+jthLkjwyFdHXECRcyBlRZRVTbhqU8snGyHEGWzLEp2lXxceCrGEm2+mpL5/Ucy5v0m+tztJf8WAAe1UTR1TaW3AGAQofX5K2dCdbLtqaJPipQG2XWb7zwNOA80YFumUgcMcdxIEYjpQ6qDNke9k42EOO6tn/AY161Ma7D9XFmqEYlI3vH9ZHmFPBJsbgZDn/7 juju-client-key +OSMLCM_VCA_CACERT=LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVFekNDQW51Z0F3SUJBZ0lWQU1jSGhxNmNLK0IrRURCdWd3STlyNTZlYW5BMU1BMEdDU3FHU0liM0RRRUIKQ3dVQU1DRXhEVEFMQmdOVkJBb1RCRXAxYW5VeEVEQU9CZ05WQkFNVEIycDFhblV0WTJFd0hoY05Nakl3TmpFMgpNRGt6TkRRNFdoY05Nekl3TmpFMk1Ea3pPVFE0V2pBaE1RMHdDd1lEVlFRS0V3UktkV3AxTVJBd0RnWURWUVFECkV3ZHFkV3AxTFdOaE1JSUJvakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBWThBTUlJQmlnS0NBWUVBeTBhMnZXOFEKT05wMU8rYmJyT0VFYTE3S0R0ZHEybXdyZEQ2VVRsOVpZSzVpSUtBdXVhUGwzWnNUNkMxYmljOTVZOGZBVHJwcgpWUFZScDI1WmZEanU5cFE4QUZDcC9IVEZmZjIxK0lCUnRrcHUwVVR0SWNoNk8xZ0N0ZWhtaFl4MWlDVnJ6Tkl2ClNudEYzTjhOK092NGJSTGRYOHI0K0R4MWsvVHZXYTFoYTZjMVAwcWQyaWhpcU9HZExlRU5pWWYxQlc3RXNFMjcKU0xLVHM0Y3lzdWNteW00SWo2SjQwOWNsUmVpa1ZoTE15WktMUjRNRjN5VTNSUEUyK3ozNTdwRjFwUy8wenRTdApldmpmdFNkQ2M1alJ1OGJNYllyMjBpTjc0MWR0Q0FUMXZzQXZhOE1VZHc2NytBQmFsNG9DWi80ajRpOXNaRmM3Cm9Ccmc3K0dJWEt3Yk5Tb1A2TDFBajB0Z3FWQ044bWxjVVphTFkvZFZPaEdScS95SmhGQVZXVjh2MjA5WkhsWWsKYzNNdUg4bDdjZytQVDlVV00zQzE2TzQzaFo5REZxVHF3TXZBWHd0djJUbzZrdW5GTVQzSWQ1RHV3Uk9GL1lPbApmOEp0SWpsQlV3QVZjVUhqbll0MEY3TzlzdjluRjdJekYrUXhraVBYMitEWkIzY2J5TXA5SGhkbEFnTUJBQUdqClFqQkFNQTRHQTFVZER3RUIvd1FFQXdJQ3BEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCUjIKQkVnbU15cUJGNWhzdGNOREFRWEI3MXRVU2pBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVlFQWszRjVzSG5DMkJNTApXWmlRN2NNQWtZd1JsdGpGOTBLWU1hSzEzYjhlNzZSNyt1UUZuSm5HN2x1dy9HanB3cS9TNnBwTHc2Tnc4U1JpCktYbjZ1N1BFNWNGN3pGWWNHT2pUOTBwTmtqTDYvVHNsbjF6R3RCWVdQZFVwbXVjNGFKclc4aEZ1TG0yRWFFaW0KQ09sTVZZNEZsZWpLampPR2pzZ09YaVJGdGdKM25rZ0Z3STl0ZE5tTDQ4V1p5TFQ1WlhmRTNneE54aTF5bUpyagpYNGJFTkdHa2JXQXJnMCtZeUZPMU1vZGExSHgxWlRGZXdVZWlKcVVzak5IWmd2VnZGRmlzY1NtQWRPNlloeFFQClljUEE1bnBPWFFyOUR1WVFrVGZ0dk5wSnNHNmhBS2dKNkRpV1doZWNDRm9rTkpnMVBVNE56dlZDVmF3cERyK1IKTEJBaGFtSEtSWWtGamdPM1QrYzRpbTJNaGtKdGJ0YnRUeTNGS1pzWUpCTG11dTUySkhUM0NPZkJEQVVCb3daNApuL2lPOGV1YnkwaHpqd2szaExXYVp1cTZaRzJHdUw0TVZlYXhLQU9JMURGRDJyQ1h1ckZ2OGM3S1pncU0rdStTCkVud29qQUtQelAyKzBuY0Fic2lEUjdScTl4VnJxMitjcE9ZZ3dBL2FQSGxUQnFST3FBcW4KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoK +# OSMLCM_VCA_ENABLEOSUPGRADE=false +# OSMLCM_VCA_APTMIRROR=http://archive.ubuntu.com/ubuntu/ +OSMLCM_VCA_CLOUD=lxd-cloud +OSMLCM_VCA_K8S_CLOUD=k8scloud +MYSQL_ROOT_PASSWORD=eu3CFlvTDXIFCH4lAMlzHYWC1kRTDJti +RO_DB_ROOT_PASSWORD=eu3CFlvTDXIFCH4lAMlzHYWC1kRTDJti +OSMRO_DATABASE_COMMONKEY=h9ud8JHJl3oR1at0Uft43LwDeWqM2ONV +MYSQL_ROOT_PASSWORD=eu3CFlvTDXIFCH4lAMlzHYWC1kRTDJti +ROOT_DB_PASSWORD=eu3CFlvTDXIFCH4lAMlzHYWC1kRTDJti +KEYSTONE_DB_PASSWORD=FIY66gpXRqWsAik6VBM9DjYmEFZz5oeH +SERVICE_PASSWORD=4e1m8TX2pd75KxpH7Y4f2BwIj8H74d67 +OSMNBI_AUTHENTICATION_SERVICE_PASSWORD=4e1m8TX2pd75KxpH7Y4f2BwIj8H74d67 +OSMNBI_DATABASE_COMMONKEY=h9ud8JHJl3oR1at0Uft43LwDeWqM2ONV +OSMMON_KEYSTONE_SERVICE_PASSWORD=4e1m8TX2pd75KxpH7Y4f2BwIj8H74d67 +OSMMON_DATABASE_COMMONKEY=h9ud8JHJl3oR1at0Uft43LwDeWqM2ONV +OSMMON_SQL_DATABASE_URI=mysql://root:eu3CFlvTDXIFCH4lAMlzHYWC1kRTDJti@mysql:3306/mon +OS_NOTIFIER_URI=http://192.168.64.22:8662 +OSMMON_VCA_HOST=192.168.64.22 +OSMMON_VCA_SECRET=193f97a8f2e5d381b1c131c5f2187e3d +OSMMON_VCA_CACERT=LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVFekNDQW51Z0F3SUJBZ0lWQU1jSGhxNmNLK0IrRURCdWd3STlyNTZlYW5BMU1BMEdDU3FHU0liM0RRRUIKQ3dVQU1DRXhEVEFMQmdOVkJBb1RCRXAxYW5VeEVEQU9CZ05WQkFNVEIycDFhblV0WTJFd0hoY05Nakl3TmpFMgpNRGt6TkRRNFdoY05Nekl3TmpFMk1Ea3pPVFE0V2pBaE1RMHdDd1lEVlFRS0V3UktkV3AxTVJBd0RnWURWUVFECkV3ZHFkV3AxTFdOaE1JSUJvakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBWThBTUlJQmlnS0NBWUVBeTBhMnZXOFEKT05wMU8rYmJyT0VFYTE3S0R0ZHEybXdyZEQ2VVRsOVpZSzVpSUtBdXVhUGwzWnNUNkMxYmljOTVZOGZBVHJwcgpWUFZScDI1WmZEanU5cFE4QUZDcC9IVEZmZjIxK0lCUnRrcHUwVVR0SWNoNk8xZ0N0ZWhtaFl4MWlDVnJ6Tkl2ClNudEYzTjhOK092NGJSTGRYOHI0K0R4MWsvVHZXYTFoYTZjMVAwcWQyaWhpcU9HZExlRU5pWWYxQlc3RXNFMjcKU0xLVHM0Y3lzdWNteW00SWo2SjQwOWNsUmVpa1ZoTE15WktMUjRNRjN5VTNSUEUyK3ozNTdwRjFwUy8wenRTdApldmpmdFNkQ2M1alJ1OGJNYllyMjBpTjc0MWR0Q0FUMXZzQXZhOE1VZHc2NytBQmFsNG9DWi80ajRpOXNaRmM3Cm9Ccmc3K0dJWEt3Yk5Tb1A2TDFBajB0Z3FWQ044bWxjVVphTFkvZFZPaEdScS95SmhGQVZXVjh2MjA5WkhsWWsKYzNNdUg4bDdjZytQVDlVV00zQzE2TzQzaFo5REZxVHF3TXZBWHd0djJUbzZrdW5GTVQzSWQ1RHV3Uk9GL1lPbApmOEp0SWpsQlV3QVZjVUhqbll0MEY3TzlzdjluRjdJekYrUXhraVBYMitEWkIzY2J5TXA5SGhkbEFnTUJBQUdqClFqQkFNQTRHQTFVZER3RUIvd1FFQXdJQ3BEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCUjIKQkVnbU15cUJGNWhzdGNOREFRWEI3MXRVU2pBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVlFQWszRjVzSG5DMkJNTApXWmlRN2NNQWtZd1JsdGpGOTBLWU1hSzEzYjhlNzZSNyt1UUZuSm5HN2x1dy9HanB3cS9TNnBwTHc2Tnc4U1JpCktYbjZ1N1BFNWNGN3pGWWNHT2pUOTBwTmtqTDYvVHNsbjF6R3RCWVdQZFVwbXVjNGFKclc4aEZ1TG0yRWFFaW0KQ09sTVZZNEZsZWpLampPR2pzZ09YaVJGdGdKM25rZ0Z3STl0ZE5tTDQ4V1p5TFQ1WlhmRTNneE54aTF5bUpyagpYNGJFTkdHa2JXQXJnMCtZeUZPMU1vZGExSHgxWlRGZXdVZWlKcVVzak5IWmd2VnZGRmlzY1NtQWRPNlloeFFQClljUEE1bnBPWFFyOUR1WVFrVGZ0dk5wSnNHNmhBS2dKNkRpV1doZWNDRm9rTkpnMVBVNE56dlZDVmF3cERyK1IKTEJBaGFtSEtSWWtGamdPM1QrYzRpbTJNaGtKdGJ0YnRUeTNGS1pzWUpCTG11dTUySkhUM0NPZkJEQVVCb3daNApuL2lPOGV1YnkwaHpqd2szaExXYVp1cTZaRzJHdUw0TVZlYXhLQU9JMURGRDJyQ1h1ckZ2OGM3S1pncU0rdStTCkVud29qQUtQelAyKzBuY0Fic2lEUjdScTl4VnJxMitjcE9ZZ3dBL2FQSGxUQnFST3FBcW4KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoK +OSMPOL_SQL_DATABASE_URI=mysql://root:eu3CFlvTDXIFCH4lAMlzHYWC1kRTDJti@mysql:3306/pol +Finished generation of docker env files +Added 'osm' model on k8scloud with credential 'k8scloud' for user 'admin' +Located charm "mongodb-k8s" in charm-hub, revision 1 +Deploying "mongodb-k8s" from charm-hub charm "mongodb-k8s", revision 1 in channel stable on focal +Error from server (AlreadyExists): namespaces "osm" already exists +secret/lcm-secret created +secret/mon-secret created +secret/nbi-secret created +secret/ro-db-secret created +secret/ro-secret created +secret/keystone-secret created +secret/pol-secret created +clusterrole.rbac.authorization.k8s.io/grafana-clusterrole created +clusterrolebinding.rbac.authorization.k8s.io/grafana-clusterrolebinding created +secret/grafana created +serviceaccount/grafana created +configmap/grafana-dashboard-provider created +configmap/grafana-datasource created +configmap/grafana created +deployment.apps/grafana created +service/grafana created +service/kafka created +statefulset.apps/kafka created +service/keystone created +deployment.apps/keystone created +deployment.apps/lcm created +service/mon created +deployment.apps/mon created +service/mysql created +statefulset.apps/mysql created +service/nbi created +deployment.apps/nbi created +service/ng-ui created +deployment.apps/ng-ui created +deployment.apps/pol created +service/prometheus created +configmap/prom created +statefulset.apps/prometheus created +service/ro created +deployment.apps/ro created +service/zookeeper created +statefulset.apps/zookeeper created +sed: can't read /etc/osm/docker/osm_pla/pla.yaml: No such file or directory +error: the path "/etc/osm/docker/osm_pla" does not exist + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed +100 3120 100 3120 0 0 4321 0 --:--:-- --:--:-- --:--:-- 4315 +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 http://security.ubuntu.com/ubuntu bionic-security InRelease +Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:4 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:7 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:6 https://packages.cloud.google.com/apt kubernetes-xenial InRelease +Get:8 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/IM amd64 Packages [897 B] +Get:9 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/osmclient amd64 Packages [476 B] +Fetched 1373 B in 8s (163 B/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 http://security.ubuntu.com/ubuntu bionic-security InRelease +Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:3 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:5 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:6 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:7 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:4 https://packages.cloud.google.com/apt kubernetes-xenial InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following additional packages will be installed: + binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-7 + dh-python dpkg-dev fakeroot g++ g++-7 gcc gcc-7 gcc-7-base + libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl + libasan4 libatomic1 libbinutils libc-dev-bin libc6-dev libcc1-0 libcilkrts5 + libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-7-dev + libgomp1 libisl19 libitm1 liblsan0 libmpc3 libmpx2 libpython3-dev + libpython3.6-dev libquadmath0 libstdc++-7-dev libtsan0 libubsan0 + linux-libc-dev make manpages-dev python-pip-whl python3-crypto python3-dev + python3-distutils python3-keyring python3-keyrings.alt python3-lib2to3 + python3-secretstorage python3-setuptools python3-wheel python3-xdg + python3.6-dev +Suggested packages: + binutils-doc cpp-doc gcc-7-locales debian-keyring g++-multilib + g++-7-multilib gcc-7-doc libstdc++6-7-dbg gcc-multilib autoconf automake + libtool flex bison gdb gcc-doc gcc-7-multilib libgcc1-dbg libgomp1-dbg + libitm1-dbg libatomic1-dbg libasan4-dbg liblsan0-dbg libtsan0-dbg + libubsan0-dbg libcilkrts5-dbg libmpx2-dbg libquadmath0-dbg glibc-doc bzr + libstdc++-7-doc make-doc python-crypto-doc gnome-keyring libkf5wallet-bin + gir1.2-gnomekeyring-1.0 python-secretstorage-doc python-setuptools-doc +The following NEW packages will be installed: + binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-7 + dh-python dpkg-dev fakeroot g++ g++-7 gcc gcc-7 gcc-7-base + libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl + libasan4 libatomic1 libbinutils libc-dev-bin libc6-dev libcc1-0 libcilkrts5 + libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-7-dev + libgomp1 libisl19 libitm1 liblsan0 libmpc3 libmpx2 libpython3-dev + libpython3.6-dev libquadmath0 libstdc++-7-dev libtsan0 libubsan0 + linux-libc-dev make manpages-dev python-pip-whl python3-crypto python3-dev + python3-distutils python3-keyring python3-keyrings.alt python3-lib2to3 + python3-pip python3-secretstorage python3-setuptools python3-wheel + python3-xdg python3.6-dev +0 upgraded, 57 newly installed, 0 to remove and 3 not upgraded. +Need to get 91.2 MB of archives. +After this operation, 253 MB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils-common amd64 2.30-21ubuntu1~18.04.7 [197 kB] +Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libbinutils amd64 2.30-21ubuntu1~18.04.7 [489 kB] +Get:3 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.30-21ubuntu1~18.04.7 [1839 kB] +Get:4 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils amd64 2.30-21ubuntu1~18.04.7 [3388 B] +Get:5 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libc-dev-bin amd64 2.27-3ubuntu1.6 [71.9 kB] +Get:6 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 linux-libc-dev amd64 4.15.0-187.198 [980 kB] +Get:7 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libc6-dev amd64 2.27-3ubuntu1.6 [2587 kB] +Get:8 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc-7-base amd64 7.5.0-3ubuntu1~18.04 [18.3 kB] +Get:9 http://archive.ubuntu.com/ubuntu bionic/main amd64 libisl19 amd64 0.19-1 [551 kB] +Get:10 http://archive.ubuntu.com/ubuntu bionic/main amd64 libmpc3 amd64 1.1.0-1 [40.8 kB] +Get:11 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 cpp-7 amd64 7.5.0-3ubuntu1~18.04 [8591 kB] +Get:12 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 cpp amd64 4:7.4.0-1ubuntu2.3 [27.7 kB] +Get:13 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libcc1-0 amd64 8.4.0-1ubuntu1~18.04 [39.4 kB] +Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgomp1 amd64 8.4.0-1ubuntu1~18.04 [76.5 kB] +Get:15 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libitm1 amd64 8.4.0-1ubuntu1~18.04 [27.9 kB] +Get:16 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libatomic1 amd64 8.4.0-1ubuntu1~18.04 [9192 B] +Get:17 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libasan4 amd64 7.5.0-3ubuntu1~18.04 [358 kB] +Get:18 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 liblsan0 amd64 8.4.0-1ubuntu1~18.04 [133 kB] +Get:19 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libtsan0 amd64 8.4.0-1ubuntu1~18.04 [288 kB] +Get:20 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libubsan0 amd64 7.5.0-3ubuntu1~18.04 [126 kB] +Get:21 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libcilkrts5 amd64 7.5.0-3ubuntu1~18.04 [42.5 kB] +Get:22 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libmpx2 amd64 8.4.0-1ubuntu1~18.04 [11.6 kB] +Get:23 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libquadmath0 amd64 8.4.0-1ubuntu1~18.04 [134 kB] +Get:24 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgcc-7-dev amd64 7.5.0-3ubuntu1~18.04 [2378 kB] +Get:25 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc-7 amd64 7.5.0-3ubuntu1~18.04 [9381 kB] +Get:26 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc amd64 4:7.4.0-1ubuntu2.3 [5184 B] +Get:27 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libstdc++-7-dev amd64 7.5.0-3ubuntu1~18.04 [1471 kB] +Get:28 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 g++-7 amd64 7.5.0-3ubuntu1~18.04 [9697 kB] +Get:29 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 g++ amd64 4:7.4.0-1ubuntu2.3 [1568 B] +Get:30 http://archive.ubuntu.com/ubuntu bionic/main amd64 make amd64 4.1-9.1ubuntu1 [154 kB] +Get:31 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libdpkg-perl all 1.19.0.5ubuntu2.4 [212 kB] +Get:32 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 dpkg-dev all 1.19.0.5ubuntu2.4 [607 kB] +Get:33 http://archive.ubuntu.com/ubuntu bionic/main amd64 build-essential amd64 12.4ubuntu1 [4758 B] +Get:34 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-lib2to3 all 3.6.9-1~18.04 [77.4 kB] +Get:35 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-distutils all 3.6.9-1~18.04 [144 kB] +Get:36 http://archive.ubuntu.com/ubuntu bionic/main amd64 dh-python all 3.20180325ubuntu2 [89.2 kB] +Get:37 http://archive.ubuntu.com/ubuntu bionic/main amd64 libfakeroot amd64 1.22-2ubuntu1 [25.9 kB] +Get:38 http://archive.ubuntu.com/ubuntu bionic/main amd64 fakeroot amd64 1.22-2ubuntu1 [62.3 kB] +Get:39 http://archive.ubuntu.com/ubuntu bionic/main amd64 libalgorithm-diff-perl all 1.19.03-1 [47.6 kB] +Get:40 http://archive.ubuntu.com/ubuntu bionic/main amd64 libalgorithm-diff-xs-perl amd64 0.04-5 [11.1 kB] +Get:41 http://archive.ubuntu.com/ubuntu bionic/main amd64 libalgorithm-merge-perl all 0.08-3 [12.0 kB] +Get:42 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libexpat1-dev amd64 2.2.5-3ubuntu0.7 [124 kB] +Get:43 http://archive.ubuntu.com/ubuntu bionic/main amd64 libfile-fcntllock-perl amd64 0.22-3build2 [33.2 kB] +Get:44 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libpython3.6-dev amd64 3.6.9-1~18.04ubuntu1.7 [44.9 MB] +Get:45 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libpython3-dev amd64 3.6.7-1~18.04 [7328 B] +Get:46 http://archive.ubuntu.com/ubuntu bionic/main amd64 manpages-dev all 4.15-1 [2217 kB] +Get:47 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 python-pip-whl all 9.0.1-2.3~ubuntu1.18.04.5 [1653 kB] +Get:48 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-crypto amd64 2.6.1-8ubuntu2 [244 kB] +Get:49 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3.6-dev amd64 3.6.9-1~18.04ubuntu1.7 [511 kB] +Get:50 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-dev amd64 3.6.7-1~18.04 [1288 B] +Get:51 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-secretstorage all 2.3.1-2 [12.1 kB] +Get:52 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-keyring all 10.6.0-1 [26.7 kB] +Get:53 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-keyrings.alt all 3.0-1 [16.6 kB] +Get:54 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 python3-pip all 9.0.1-2.3~ubuntu1.18.04.5 [114 kB] +Get:55 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-setuptools all 39.0.1-2 [248 kB] +Get:56 http://archive.ubuntu.com/ubuntu bionic/universe amd64 python3-wheel all 0.30.0-0.2 [36.5 kB] +Get:57 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-xdg all 0.25-4ubuntu1.1 [31.3 kB] +Fetched 91.2 MB in 12s (7704 kB/s) +Selecting previously unselected package binutils-common:amd64. +(Reading database ... 61696 files and directories currently installed.) +Preparing to unpack .../00-binutils-common_2.30-21ubuntu1~18.04.7_amd64.deb ... +Unpacking binutils-common:amd64 (2.30-21ubuntu1~18.04.7) ... +Selecting previously unselected package libbinutils:amd64. +Preparing to unpack .../01-libbinutils_2.30-21ubuntu1~18.04.7_amd64.deb ... +Unpacking libbinutils:amd64 (2.30-21ubuntu1~18.04.7) ... +Selecting previously unselected package binutils-x86-64-linux-gnu. +Preparing to unpack .../02-binutils-x86-64-linux-gnu_2.30-21ubuntu1~18.04.7_amd64.deb ... +Unpacking binutils-x86-64-linux-gnu (2.30-21ubuntu1~18.04.7) ... +Selecting previously unselected package binutils. +Preparing to unpack .../03-binutils_2.30-21ubuntu1~18.04.7_amd64.deb ... +Unpacking binutils (2.30-21ubuntu1~18.04.7) ... +Selecting previously unselected package libc-dev-bin. +Preparing to unpack .../04-libc-dev-bin_2.27-3ubuntu1.6_amd64.deb ... +Unpacking libc-dev-bin (2.27-3ubuntu1.6) ... +Selecting previously unselected package linux-libc-dev:amd64. +Preparing to unpack .../05-linux-libc-dev_4.15.0-187.198_amd64.deb ... +Unpacking linux-libc-dev:amd64 (4.15.0-187.198) ... +Selecting previously unselected package libc6-dev:amd64. +Preparing to unpack .../06-libc6-dev_2.27-3ubuntu1.6_amd64.deb ... +Unpacking libc6-dev:amd64 (2.27-3ubuntu1.6) ... +Selecting previously unselected package gcc-7-base:amd64. +Preparing to unpack .../07-gcc-7-base_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking gcc-7-base:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package libisl19:amd64. +Preparing to unpack .../08-libisl19_0.19-1_amd64.deb ... +Unpacking libisl19:amd64 (0.19-1) ... +Selecting previously unselected package libmpc3:amd64. +Preparing to unpack .../09-libmpc3_1.1.0-1_amd64.deb ... +Unpacking libmpc3:amd64 (1.1.0-1) ... +Selecting previously unselected package cpp-7. +Preparing to unpack .../10-cpp-7_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking cpp-7 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package cpp. +Preparing to unpack .../11-cpp_4%3a7.4.0-1ubuntu2.3_amd64.deb ... +Unpacking cpp (4:7.4.0-1ubuntu2.3) ... +Selecting previously unselected package libcc1-0:amd64. +Preparing to unpack .../12-libcc1-0_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libcc1-0:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libgomp1:amd64. +Preparing to unpack .../13-libgomp1_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libgomp1:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libitm1:amd64. +Preparing to unpack .../14-libitm1_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libitm1:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libatomic1:amd64. +Preparing to unpack .../15-libatomic1_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libatomic1:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libasan4:amd64. +Preparing to unpack .../16-libasan4_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libasan4:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package liblsan0:amd64. +Preparing to unpack .../17-liblsan0_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking liblsan0:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libtsan0:amd64. +Preparing to unpack .../18-libtsan0_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libtsan0:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libubsan0:amd64. +Preparing to unpack .../19-libubsan0_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libubsan0:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package libcilkrts5:amd64. +Preparing to unpack .../20-libcilkrts5_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libcilkrts5:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package libmpx2:amd64. +Preparing to unpack .../21-libmpx2_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libmpx2:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libquadmath0:amd64. +Preparing to unpack .../22-libquadmath0_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libquadmath0:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libgcc-7-dev:amd64. +Preparing to unpack .../23-libgcc-7-dev_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libgcc-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package gcc-7. +Preparing to unpack .../24-gcc-7_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking gcc-7 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package gcc. +Preparing to unpack .../25-gcc_4%3a7.4.0-1ubuntu2.3_amd64.deb ... +Unpacking gcc (4:7.4.0-1ubuntu2.3) ... +Selecting previously unselected package libstdc++-7-dev:amd64. +Preparing to unpack .../26-libstdc++-7-dev_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libstdc++-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package g++-7. +Preparing to unpack .../27-g++-7_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking g++-7 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package g++. +Preparing to unpack .../28-g++_4%3a7.4.0-1ubuntu2.3_amd64.deb ... +Unpacking g++ (4:7.4.0-1ubuntu2.3) ... +Selecting previously unselected package make. +Preparing to unpack .../29-make_4.1-9.1ubuntu1_amd64.deb ... +Unpacking make (4.1-9.1ubuntu1) ... +Selecting previously unselected package libdpkg-perl. +Preparing to unpack .../30-libdpkg-perl_1.19.0.5ubuntu2.4_all.deb ... +Unpacking libdpkg-perl (1.19.0.5ubuntu2.4) ... +Selecting previously unselected package dpkg-dev. +Preparing to unpack .../31-dpkg-dev_1.19.0.5ubuntu2.4_all.deb ... +Unpacking dpkg-dev (1.19.0.5ubuntu2.4) ... +Selecting previously unselected package build-essential. +Preparing to unpack .../32-build-essential_12.4ubuntu1_amd64.deb ... +Unpacking build-essential (12.4ubuntu1) ... +Selecting previously unselected package python3-lib2to3. +Preparing to unpack .../33-python3-lib2to3_3.6.9-1~18.04_all.deb ... +Unpacking python3-lib2to3 (3.6.9-1~18.04) ... +Selecting previously unselected package python3-distutils. +Preparing to unpack .../34-python3-distutils_3.6.9-1~18.04_all.deb ... +Unpacking python3-distutils (3.6.9-1~18.04) ... +Selecting previously unselected package dh-python. +Preparing to unpack .../35-dh-python_3.20180325ubuntu2_all.deb ... +Unpacking dh-python (3.20180325ubuntu2) ... +Selecting previously unselected package libfakeroot:amd64. +Preparing to unpack .../36-libfakeroot_1.22-2ubuntu1_amd64.deb ... +Unpacking libfakeroot:amd64 (1.22-2ubuntu1) ... +Selecting previously unselected package fakeroot. +Preparing to unpack .../37-fakeroot_1.22-2ubuntu1_amd64.deb ... +Unpacking fakeroot (1.22-2ubuntu1) ... +Selecting previously unselected package libalgorithm-diff-perl. +Preparing to unpack .../38-libalgorithm-diff-perl_1.19.03-1_all.deb ... +Unpacking libalgorithm-diff-perl (1.19.03-1) ... +Selecting previously unselected package libalgorithm-diff-xs-perl. +Preparing to unpack .../39-libalgorithm-diff-xs-perl_0.04-5_amd64.deb ... +Unpacking libalgorithm-diff-xs-perl (0.04-5) ... +Selecting previously unselected package libalgorithm-merge-perl. +Preparing to unpack .../40-libalgorithm-merge-perl_0.08-3_all.deb ... +Unpacking libalgorithm-merge-perl (0.08-3) ... +Selecting previously unselected package libexpat1-dev:amd64. +Preparing to unpack .../41-libexpat1-dev_2.2.5-3ubuntu0.7_amd64.deb ... +Unpacking libexpat1-dev:amd64 (2.2.5-3ubuntu0.7) ... +Selecting previously unselected package libfile-fcntllock-perl. +Preparing to unpack .../42-libfile-fcntllock-perl_0.22-3build2_amd64.deb ... +Unpacking libfile-fcntllock-perl (0.22-3build2) ... +Selecting previously unselected package libpython3.6-dev:amd64. +Preparing to unpack .../43-libpython3.6-dev_3.6.9-1~18.04ubuntu1.7_amd64.deb ... +Unpacking libpython3.6-dev:amd64 (3.6.9-1~18.04ubuntu1.7) ... +Selecting previously unselected package libpython3-dev:amd64. +Preparing to unpack .../44-libpython3-dev_3.6.7-1~18.04_amd64.deb ... +Unpacking libpython3-dev:amd64 (3.6.7-1~18.04) ... +Selecting previously unselected package manpages-dev. +Preparing to unpack .../45-manpages-dev_4.15-1_all.deb ... +Unpacking manpages-dev (4.15-1) ... +Selecting previously unselected package python-pip-whl. +Preparing to unpack .../46-python-pip-whl_9.0.1-2.3~ubuntu1.18.04.5_all.deb ... +Unpacking python-pip-whl (9.0.1-2.3~ubuntu1.18.04.5) ... +Selecting previously unselected package python3-crypto. +Preparing to unpack .../47-python3-crypto_2.6.1-8ubuntu2_amd64.deb ... +Unpacking python3-crypto (2.6.1-8ubuntu2) ... +Selecting previously unselected package python3.6-dev. +Preparing to unpack .../48-python3.6-dev_3.6.9-1~18.04ubuntu1.7_amd64.deb ... +Unpacking python3.6-dev (3.6.9-1~18.04ubuntu1.7) ... +Selecting previously unselected package python3-dev. +Preparing to unpack .../49-python3-dev_3.6.7-1~18.04_amd64.deb ... +Unpacking python3-dev (3.6.7-1~18.04) ... +Selecting previously unselected package python3-secretstorage. +Preparing to unpack .../50-python3-secretstorage_2.3.1-2_all.deb ... +Unpacking python3-secretstorage (2.3.1-2) ... +Selecting previously unselected package python3-keyring. +Preparing to unpack .../51-python3-keyring_10.6.0-1_all.deb ... +Unpacking python3-keyring (10.6.0-1) ... +Selecting previously unselected package python3-keyrings.alt. +Preparing to unpack .../52-python3-keyrings.alt_3.0-1_all.deb ... +Unpacking python3-keyrings.alt (3.0-1) ... +Selecting previously unselected package python3-pip. +Preparing to unpack .../53-python3-pip_9.0.1-2.3~ubuntu1.18.04.5_all.deb ... +Unpacking python3-pip (9.0.1-2.3~ubuntu1.18.04.5) ... +Selecting previously unselected package python3-setuptools. +Preparing to unpack .../54-python3-setuptools_39.0.1-2_all.deb ... +Unpacking python3-setuptools (39.0.1-2) ... +Selecting previously unselected package python3-wheel. +Preparing to unpack .../55-python3-wheel_0.30.0-0.2_all.deb ... +Unpacking python3-wheel (0.30.0-0.2) ... +Selecting previously unselected package python3-xdg. +Preparing to unpack .../56-python3-xdg_0.25-4ubuntu1.1_all.deb ... +Unpacking python3-xdg (0.25-4ubuntu1.1) ... +Setting up libquadmath0:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up libgomp1:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up libatomic1:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up python-pip-whl (9.0.1-2.3~ubuntu1.18.04.5) ... +Setting up libcc1-0:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up make (4.1-9.1ubuntu1) ... +Setting up python3-crypto (2.6.1-8ubuntu2) ... +Setting up libtsan0:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up python3-xdg (0.25-4ubuntu1.1) ... +Setting up python3-keyrings.alt (3.0-1) ... +Setting up linux-libc-dev:amd64 (4.15.0-187.198) ... +Setting up libdpkg-perl (1.19.0.5ubuntu2.4) ... +Setting up python3-wheel (0.30.0-0.2) ... +Setting up liblsan0:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up gcc-7-base:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up binutils-common:amd64 (2.30-21ubuntu1~18.04.7) ... +Setting up libfile-fcntllock-perl (0.22-3build2) ... +Setting up libmpx2:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up libfakeroot:amd64 (1.22-2ubuntu1) ... +Setting up libalgorithm-diff-perl (1.19.03-1) ... +Setting up libmpc3:amd64 (1.1.0-1) ... +Setting up libc-dev-bin (2.27-3ubuntu1.6) ... +Setting up python3-lib2to3 (3.6.9-1~18.04) ... +Setting up python3-secretstorage (2.3.1-2) ... +Setting up manpages-dev (4.15-1) ... +Setting up libc6-dev:amd64 (2.27-3ubuntu1.6) ... +Setting up python3-distutils (3.6.9-1~18.04) ... +Setting up libitm1:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up libisl19:amd64 (0.19-1) ... +Setting up libasan4:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up python3-keyring (10.6.0-1) ... +Setting up libbinutils:amd64 (2.30-21ubuntu1~18.04.7) ... +Setting up libcilkrts5:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up libubsan0:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up fakeroot (1.22-2ubuntu1) ... +update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode +Setting up libgcc-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up cpp-7 (7.5.0-3ubuntu1~18.04) ... +Setting up libstdc++-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up libalgorithm-merge-perl (0.08-3) ... +Setting up libalgorithm-diff-xs-perl (0.04-5) ... +Setting up python3-pip (9.0.1-2.3~ubuntu1.18.04.5) ... +Setting up libexpat1-dev:amd64 (2.2.5-3ubuntu0.7) ... +Setting up python3-setuptools (39.0.1-2) ... +Setting up dh-python (3.20180325ubuntu2) ... +Setting up binutils-x86-64-linux-gnu (2.30-21ubuntu1~18.04.7) ... +Setting up cpp (4:7.4.0-1ubuntu2.3) ... +Setting up libpython3.6-dev:amd64 (3.6.9-1~18.04ubuntu1.7) ... +Setting up binutils (2.30-21ubuntu1~18.04.7) ... +Setting up python3.6-dev (3.6.9-1~18.04ubuntu1.7) ... +Setting up libpython3-dev:amd64 (3.6.7-1~18.04) ... +Setting up gcc-7 (7.5.0-3ubuntu1~18.04) ... +Setting up g++-7 (7.5.0-3ubuntu1~18.04) ... +Setting up python3-dev (3.6.7-1~18.04) ... +Setting up gcc (4:7.4.0-1ubuntu2.3) ... +Setting up dpkg-dev (1.19.0.5ubuntu2.4) ... +Setting up g++ (4:7.4.0-1ubuntu2.3) ... +update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode +Setting up build-essential (12.4ubuntu1) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... +Processing triggers for libc-bin (2.27-3ubuntu1.6) ... +Collecting pip + Downloading https://files.pythonhosted.org/packages/a4/6d/6463d49a933f547439d6b5b98b46af8742cc03ae83543e4d7688c2420f8b/pip-21.3.1-py3-none-any.whl (1.7MB) +Installing collected packages: pip + Found existing installation: pip 9.0.1 + Not uninstalling pip at /usr/lib/python3/dist-packages, outside environment /usr +Successfully installed pip-21.3.1 +Collecting python-magic + Downloading python_magic-0.4.27-py2.py3-none-any.whl (13 kB) +Collecting pyangbind + Downloading pyangbind-0.8.1.tar.gz (48 kB) + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' +Collecting verboselogs + Downloading verboselogs-1.7-py2.py3-none-any.whl (11 kB) +Collecting bitarray + Downloading bitarray-2.5.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (236 kB) +Collecting enum34 + Downloading enum34-1.1.10-py3-none-any.whl (11 kB) +Collecting lxml + Downloading lxml-4.9.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (6.4 MB) +Collecting pyang + Downloading pyang-2.5.3-py2.py3-none-any.whl (592 kB) +Collecting regex + Downloading regex-2022.6.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (749 kB) +Requirement already satisfied: six in /usr/lib/python3/dist-packages (from pyangbind) (1.11.0) +Building wheels for collected packages: pyangbind + Building wheel for pyangbind (setup.py): started + Building wheel for pyangbind (setup.py): finished with status 'done' + Created wheel for pyangbind: filename=pyangbind-0.8.1-py3-none-any.whl size=49314 sha256=6ac78baed0a9c69c5fcb9387ec96ca1e63d0cc895321f54cff7d7a47ef82fe68 + Stored in directory: /root/.cache/pip/wheels/d7/5f/16/210e82959deac8e57e539448ff940505a957125a521cb2a828 +Successfully built pyangbind +Installing collected packages: lxml, regex, pyang, enum34, bitarray, verboselogs, python-magic, pyangbind +Successfully installed bitarray-2.5.1 enum34-1.1.10 lxml-4.9.0 pyang-2.5.3 pyangbind-0.8.1 python-magic-0.4.27 regex-2022.6.2 verboselogs-1.7 +WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following NEW packages will be installed: + python3-osm-im python3-osmclient +0 upgraded, 2 newly installed, 0 to remove and 3 not upgraded. +Need to get 250 kB of archives. +After this operation, 8189 kB of additional disk space will be used. +Get:1 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/IM amd64 python3-osm-im all 10.1.1+gd3b8c07-1 [186 kB] +Get:2 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/osmclient amd64 python3-osmclient all 10.1.1+gac8d207-1 [64.0 kB] +Fetched 250 kB in 0s (767 kB/s) +Selecting previously unselected package python3-osm-im. +(Reading database ... 68302 files and directories currently installed.) +Preparing to unpack .../python3-osm-im_10.1.1+gd3b8c07-1_all.deb ... +Unpacking python3-osm-im (10.1.1+gd3b8c07-1) ... +Selecting previously unselected package python3-osmclient. +Preparing to unpack .../python3-osmclient_10.1.1+gac8d207-1_all.deb ... +Unpacking python3-osmclient (10.1.1+gac8d207-1) ... +Setting up python3-osmclient (10.1.1+gac8d207-1) ... +Setting up python3-osm-im (10.1.1+gd3b8c07-1) ... +Defaulting to user installation because normal site-packages is not writeable +Collecting bitarray==2.3.5 + Downloading bitarray-2.3.5.tar.gz (88 kB) + Preparing metadata (setup.py): started + Preparing metadata (setup.py): finished with status 'done' +Requirement already satisfied: enum34==1.1.10 in /usr/local/lib/python3.6/dist-packages (from -r /usr/lib/python3/dist-packages/osm_im/requirements.txt (line 19)) (1.1.10) +Collecting lxml==4.7.1 + Downloading lxml-4.7.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (6.4 MB) +Collecting pyang==2.5.2 + Downloading pyang-2.5.2-py2.py3-none-any.whl (595 kB) +Requirement already satisfied: pyangbind==0.8.1 in /usr/local/lib/python3.6/dist-packages (from -r /usr/lib/python3/dist-packages/osm_im/requirements.txt (line 29)) (0.8.1) +Collecting pyyaml==5.4.1 + Downloading PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl (640 kB) +Collecting regex==2021.11.10 + Downloading regex-2021.11.10-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (748 kB) +Collecting six==1.16.0 + Downloading six-1.16.0-py2.py3-none-any.whl (11 kB) +Building wheels for collected packages: bitarray + Building wheel for bitarray (setup.py): started + Building wheel for bitarray (setup.py): finished with status 'done' + Created wheel for bitarray: filename=bitarray-2.3.5-cp36-cp36m-linux_x86_64.whl size=179236 sha256=e84a254fb92fddf1e40d3030566438973dce1625f0b1676b8d91507687070ffb + Stored in directory: /home/ubuntu/.cache/pip/wheels/b6/88/b1/11e997b83a46fd896ace064f835328c661db94816895770eb6 +Successfully built bitarray +Installing collected packages: lxml, six, regex, pyang, bitarray, pyyaml +Successfully installed bitarray-2.3.5 lxml-4.7.1 pyang-2.5.2 pyyaml-5.4.1 regex-2021.11.10 six-1.16.0 +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +Suggested packages: + libcurl4-doc libidn11-dev libkrb5-dev libldap2-dev librtmp-dev libssh2-1-dev + pkg-config zlib1g-dev libssl-doc +The following NEW packages will be installed: + libcurl4-openssl-dev libssl-dev +0 upgraded, 2 newly installed, 0 to remove and 3 not upgraded. +Need to get 1870 kB of archives. +After this operation, 9284 kB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libcurl4-openssl-dev amd64 7.58.0-2ubuntu3.18 [302 kB] +Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libssl-dev amd64 1.1.1-1ubuntu2.1~18.04.17 [1568 kB] +Fetched 1870 kB in 1s (1295 kB/s) +Selecting previously unselected package libcurl4-openssl-dev:amd64. +(Reading database ... 68386 files and directories currently installed.) +Preparing to unpack .../libcurl4-openssl-dev_7.58.0-2ubuntu3.18_amd64.deb ... +Unpacking libcurl4-openssl-dev:amd64 (7.58.0-2ubuntu3.18) ... +Selecting previously unselected package libssl-dev:amd64. +Preparing to unpack .../libssl-dev_1.1.1-1ubuntu2.1~18.04.17_amd64.deb ... +Unpacking libssl-dev:amd64 (1.1.1-1ubuntu2.1~18.04.17) ... +Setting up libssl-dev:amd64 (1.1.1-1ubuntu2.1~18.04.17) ... +Setting up libcurl4-openssl-dev:amd64 (7.58.0-2ubuntu3.18) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... +Defaulting to user installation because normal site-packages is not writeable +Collecting certifi==2021.10.8 + Downloading certifi-2021.10.8-py2.py3-none-any.whl (149 kB) +Collecting charset-normalizer==2.0.10 + Downloading charset_normalizer-2.0.10-py3-none-any.whl (39 kB) +Collecting click==8.0.3 + Downloading click-8.0.3-py3-none-any.whl (97 kB) +Collecting idna==3.3 + Downloading idna-3.3-py3-none-any.whl (61 kB) +Collecting jinja2==3.0.3 + Downloading Jinja2-3.0.3-py3-none-any.whl (133 kB) +Collecting markupsafe==2.0.1 + Downloading MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (30 kB) +Collecting packaging==21.3 + Downloading packaging-21.3-py3-none-any.whl (40 kB) +ERROR: Could not find a version that satisfies the requirement prettytable==3.0.0 (from versions: 0.3, 0.4, 0.5, 0.6, 0.6.1, 0.7.1, 0.7.2, 1.0.0, 1.0.1, 2.0.0, 2.1.0, 2.2.0, 2.2.1, 2.3.0, 2.4.0, 2.5.0) +ERROR: No matching distribution found for prettytable==3.0.0 + +OSM client installed +OSM client assumes that OSM host is running in localhost (127.0.0.1). +In case you want to interact with a different OSM host, you will have to configure this env variable in your .bashrc file: + export OSM_HOSTNAME= +Checking OSM health state... + +Bootstraping... 1 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 2 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 3 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 4 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 5 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 6 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 7 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 8 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 9 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 10 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 11 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 12 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 13 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 14 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 15 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 16 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 17 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 18 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 19 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 20 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 21 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 22 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 23 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 24 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 25 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 26 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 27 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 28 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 29 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 30 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 31 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 32 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 33 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + +1 of 6 statefulsets starting: + mongodb-k8s 0/1 + + +Bootstraping... 34 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 35 attempts of 84 +5 of 9 deployments starting: + lcm 0/1 0 + mon 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 36 attempts of 84 +1 of 9 deployments starting: + lcm 0/1 0 + + +Bootstraping... 37 attempts of 84 +1 of 9 deployments starting: + lcm 0/1 0 + + +Bootstraping... 38 attempts of 84 +1 of 9 deployments starting: + lcm 0/1 0 + + +Bootstraping... 39 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 40 attempts of 84 +3 of 9 deployments starting: + lcm 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 41 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 42 attempts of 84 +3 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + + +Bootstraping... 43 attempts of 84 +3 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + ro 0/1 0 + + +Bootstraping... 44 attempts of 84 +3 of 9 deployments starting: + lcm 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 45 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 46 attempts of 84 +4 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + ro 0/1 0 + + +Bootstraping... 47 attempts of 84 +3 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + pol 0/1 0 + + +Bootstraping... 48 attempts of 84 +2 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + + +Bootstraping... 49 attempts of 84 +2 of 9 deployments starting: + lcm 0/1 0 + nbi 0/1 0 + + +Bootstraping... 50 attempts of 84 +1 of 9 deployments starting: + lcm 0/1 0 + + +Bootstraping... 51 attempts of 84 +1 of 9 deployments starting: + lcm 0/1 0 + +===> Successful checks: 24/24 +SYSTEM IS READY +Check OSM status with: kubectl -n osm get all +Traceback (most recent call last): + File "/usr/bin/osm", line 33, in + sys.exit(load_entry_point('osmclient==10.1.1+gac8d207', 'console_scripts', 'osm')()) + File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 480, in load_entry_point + return get_distribution(dist).load_entry_point(group, name) + File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2693, in load_entry_point + return ep.load() + File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2324, in load + return self.resolve() + File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2330, in resolve + module = __import__(self.module_name, fromlist=['__name__'], level=0) + File "/usr/lib/python3/dist-packages/osmclient/scripts/osm.py", line 22, in + from osmclient import client + File "/usr/lib/python3/dist-packages/osmclient/client.py", line 22, in + from osmclient.v1 import client as client + File "/usr/lib/python3/dist-packages/osmclient/v1/client.py", line 28, in + from osmclient.common import http + File "/usr/lib/python3/dist-packages/osmclient/common/http.py", line 18, in + import pycurl +ModuleNotFoundError: No module named 'pycurl' +Traceback (most recent call last): + File "/usr/bin/osm", line 33, in + sys.exit(load_entry_point('osmclient==10.1.1+gac8d207', 'console_scripts', 'osm')()) + File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 480, in load_entry_point + return get_distribution(dist).load_entry_point(group, name) + File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2693, in load_entry_point + return ep.load() + File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2324, in load + return self.resolve() + File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2330, in resolve + module = __import__(self.module_name, fromlist=['__name__'], level=0) + File "/usr/lib/python3/dist-packages/osmclient/scripts/osm.py", line 22, in + from osmclient import client + File "/usr/lib/python3/dist-packages/osmclient/client.py", line 22, in + from osmclient.v1 import client as client + File "/usr/lib/python3/dist-packages/osmclient/v1/client.py", line 28, in + from osmclient.common import http + File "/usr/lib/python3/dist-packages/osmclient/common/http.py", line 18, in + import pycurl +ModuleNotFoundError: No module named 'pycurl' + +DONE diff --git a/_tmp/osm-install-issues/mp.osm10-ubuntu18.min-hw.md b/_tmp/osm-install-issues/mp.osm10-ubuntu18.min-hw.md new file mode 100644 index 0000000..b15bfef --- /dev/null +++ b/_tmp/osm-install-issues/mp.osm10-ubuntu18.min-hw.md @@ -0,0 +1,518 @@ +```bash + +Last login: Sun Sep 5 19:08:04 on ttys015 +mactel:source-watcher andrea$ multipass find +Image Aliases Version Description +snapcraft:core18 20201111 Snapcraft builder for Core 18 +snapcraft:core20 20201111 Snapcraft builder for Core 20 +snapcraft:core 20210430 Snapcraft builder for Core 16 +18.04 bionic 20210825 Ubuntu 18.04 LTS +20.04 focal,lts 20210825 Ubuntu 20.04 LTS +mactel:source-watcher andrea$ multipass launch --name osm --cpus 2 --mem 6G --disk 40G 18.04 +One quick question before we launch … Would you like to help +the Multipass developers, by sending anonymous usage data? +This includes your operating system, which images you use, +the number of instances, their properties and how long you use them. +We’d also like to measure Multipass’s speed. + +Send usage data (yes/no/Later)? no +Launched: osm + +########################################################################################### +New Multipass 1.7.0 release +Workflows, auto-bridges and more... + +Go here for more information: https://github.com/CanonicalLtd/multipass/releases/tag/v1.7.0 +########################################################################################### +mactel:source-watcher andrea$ multipass exec osm -- bash +To run a command as administrator (user "root"), use "sudo ". +See "man sudo_root" for details. + +ubuntu@osm:~$ lsb_release -a +No LSB modules are available. +Distributor ID: Ubuntu +Description: Ubuntu 18.04.5 LTS +Release: 18.04 +Codename: bionic +ubuntu@osm:~$ wget https://osm-download.etsi.org/ftp/osm-10.0-ten/install_osm.sh +--2021-09-06 10:11:29-- https://osm-download.etsi.org/ftp/osm-10.0-ten/install_osm.sh +Resolving osm-download.etsi.org (osm-download.etsi.org)... 195.238.226.47 +Connecting to osm-download.etsi.org (osm-download.etsi.org)|195.238.226.47|:443... connected. +HTTP request sent, awaiting response... 200 OK +Length: 9348 (9.1K) [text/x-sh] +Saving to: ‘install_osm.sh’ + +install_osm.sh 100%[============================================================================================>] 9.13K --.-KB/s in 0.003s + +2021-09-06 10:11:29 (3.12 MB/s) - ‘install_osm.sh’ saved [9348/9348] + +ubuntu@osm:~$ chmod +x install_osm.sh +ubuntu@osm:~$ ./install_osm.sh 2>&1 | tee osm_install_log.txt +Checking required packages: software-properties-common apt-transport-https +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease +Get:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB] +Get:3 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB] +Get:4 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease [4070 B] +Get:5 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [8570 kB] +Get:6 http://archive.ubuntu.com/ubuntu bionic/universe Translation-en [4941 kB] +Get:7 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/devops amd64 Packages [479 B] +Get:8 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [151 kB] +Get:9 http://archive.ubuntu.com/ubuntu bionic/multiverse Translation-en [108 kB] +Get:10 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [2192 kB] +Get:11 http://archive.ubuntu.com/ubuntu bionic-updates/main Translation-en [430 kB] +Get:12 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1748 kB] +Get:13 http://archive.ubuntu.com/ubuntu bionic-updates/universe Translation-en [375 kB] +Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [27.3 kB] +Get:15 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse Translation-en [6808 B] +Get:16 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB] +Get:17 http://archive.ubuntu.com/ubuntu bionic-backports/main amd64 Packages [10.0 kB] +Get:18 http://archive.ubuntu.com/ubuntu bionic-backports/main Translation-en [4764 B] +Get:19 http://archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages [10.3 kB] +Get:20 http://archive.ubuntu.com/ubuntu bionic-backports/universe Translation-en [4588 B] +Get:21 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [1846 kB] +Get:22 http://security.ubuntu.com/ubuntu bionic-security/main Translation-en [338 kB] +Get:23 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [1137 kB] +Get:24 http://security.ubuntu.com/ubuntu bionic-security/universe Translation-en [259 kB] +Get:25 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [20.9 kB] +Get:26 http://security.ubuntu.com/ubuntu bionic-security/multiverse Translation-en [4732 B] +Fetched 22.4 MB in 5s (4674 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:3 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:4 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:5 http://security.ubuntu.com/ubuntu bionic-security InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:3 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:4 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:5 http://security.ubuntu.com/ubuntu bionic-security InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + osm-devops +0 upgraded, 1 newly installed, 0 to remove and 4 not upgraded. +Need to get 824 kB of archives. +After this operation, 9116 kB of additional disk space will be used. +Get:1 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/devops amd64 osm-devops all 10.0.1-1 [824 kB] +Fetched 824 kB in 0s (2210 kB/s) + Selecting previously unselected package osm-devops. +(Reading database ... 60392 files and directories currently installed.) +Preparing to unpack .../osm-devops_10.0.1-1_all.deb ... +Unpacking osm-devops (10.0.1-1) ... +Setting up osm-devops (10.0.1-1) ... +Checking required packages: git wget curl tar +2021-09-06T10:12:14+02:00 INFO Waiting for automatic snapd restart... +jq 1.5+dfsg-1 from Canonical* installed +## Mon Sep 6 10:12:19 CEST 2021 source: logging sourced +## Mon Sep 6 10:12:19 CEST 2021 source: config sourced +## Mon Sep 6 10:12:19 CEST 2021 source: container sourced +## Mon Sep 6 10:12:19 CEST 2021 source: git_functions sourced +The installation will do the following + 1. Install and configure LXD + 2. Install juju + 3. Install docker CE + 4. Disable swap space + 5. Install and initialize Kubernetes + as pre-requirements. + Do you want to proceed (Y/n)? y +Installing lightweight build of OSM +Checking required packages: snapd +* Applying /etc/sysctl.d/10-console-messages.conf ... +kernel.printk = 4 4 1 7 +* Applying /etc/sysctl.d/10-ipv6-privacy.conf ... +net.ipv6.conf.all.use_tempaddr = 2 +net.ipv6.conf.default.use_tempaddr = 2 +* Applying /etc/sysctl.d/10-kernel-hardening.conf ... +kernel.kptr_restrict = 1 +* Applying /etc/sysctl.d/10-link-restrictions.conf ... +fs.protected_hardlinks = 1 +fs.protected_symlinks = 1 +* Applying /etc/sysctl.d/10-lxd-inotify.conf ... +fs.inotify.max_user_instances = 1024 +* Applying /etc/sysctl.d/10-magic-sysrq.conf ... +kernel.sysrq = 176 +* Applying /etc/sysctl.d/10-network-security.conf ... +net.ipv4.conf.default.rp_filter = 1 +net.ipv4.conf.all.rp_filter = 1 +net.ipv4.tcp_syncookies = 1 +* Applying /etc/sysctl.d/10-ptrace.conf ... +kernel.yama.ptrace_scope = 1 +* Applying /etc/sysctl.d/10-zeropage.conf ... +vm.mmap_min_addr = 65536 +* Applying /usr/lib/sysctl.d/50-default.conf ... +net.ipv4.conf.all.promote_secondaries = 1 +net.core.default_qdisc = fq_codel +* Applying /etc/sysctl.d/60-lxd-production.conf ... +fs.inotify.max_queued_events = 1048576 +fs.inotify.max_user_instances = 1048576 +fs.inotify.max_user_watches = 1048576 +vm.max_map_count = 262144 +kernel.dmesg_restrict = 1 +net.ipv4.neigh.default.gc_thresh3 = 8192 +net.ipv6.neigh.default.gc_thresh3 = 8192 +net.core.bpf_jit_limit = 3000000000 +kernel.keys.maxkeys = 2000 +kernel.keys.maxbytes = 2000000 +* Applying /etc/sysctl.d/99-cloudimg-ipv6.conf ... +net.ipv6.conf.all.use_tempaddr = 0 +net.ipv6.conf.default.use_tempaddr = 0 +* Applying /etc/sysctl.d/99-sysctl.conf ... +* Applying /etc/sysctl.conf ... +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following packages will be REMOVED: + liblxc-common* liblxc1* lxcfs* lxd* lxd-client* +0 upgraded, 0 newly installed, 5 to remove and 4 not upgraded. +After this operation, 34.1 MB disk space will be freed. +(Reading database ... 61700 files and directories currently installed.)e ... +Removing lxd (3.0.3-0ubuntu1~18.04.1) ... +Removing lxd dnsmasq configuration +Removing lxcfs (3.0.3-0ubuntu1~18.04.2) ... +Removing lxd-client (3.0.3-0ubuntu1~18.04.1) ... +Removing liblxc-common (3.0.3-0ubuntu1~18.04.1) ... +Removing liblxc1 (3.0.3-0ubuntu1~18.04.1) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... +Processing triggers for libc-bin (2.27-3ubuntu1.4) ... +(Reading database ... 61454 files and directories currently installed.) +Purging configuration files for liblxc-common (3.0.3-0ubuntu1~18.04.1) ... +Purging configuration files for lxd (3.0.3-0ubuntu1~18.04.1) ... +Purging configuration files for lxcfs (3.0.3-0ubuntu1~18.04.2) ... +Processing triggers for systemd (237-3ubuntu10.51) ... +Processing triggers for ureadahead (0.100.0-21) ... +lxd 4.17 from Canonical* installed +To start your first instance, try: lxc launch ubuntu:18.04 + +Installing Docker CE ... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +ca-certificates is already the newest version (20210119~18.04.1). +ca-certificates set to manually installed. +software-properties-common is already the newest version (0.96.24.32.14). +software-properties-common set to manually installed. +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following NEW packages will be installed: + apt-transport-https +0 upgraded, 1 newly installed, 0 to remove and 4 not upgraded. +Need to get 4348 B of archives. +After this operation, 154 kB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 apt-transport-https all 1.6.14 [4348 B] +Fetched 4348 B in 0s (54.8 kB/s) + Selecting previously unselected package apt-transport-https. +(Reading database ... 61437 files and directories currently installed.) +Preparing to unpack .../apt-transport-https_1.6.14_all.deb ... +Unpacking apt-transport-https (1.6.14) ... +Setting up apt-transport-https (1.6.14) ... +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease +Get:2 https://download.docker.com/linux/ubuntu bionic InRelease [64.4 kB] +Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:6 http://security.ubuntu.com/ubuntu bionic-security InRelease +Get:7 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages [19.8 kB] +Fetched 84.3 kB in 1s (127 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following additional packages will be installed: + containerd.io docker-ce-cli docker-ce-rootless-extras docker-scan-plugin + libltdl7 pigz +Suggested packages: + aufs-tools cgroupfs-mount | cgroup-lite +Recommended packages: + slirp4netns +The following NEW packages will be installed: + containerd.io docker-ce docker-ce-cli docker-ce-rootless-extras + docker-scan-plugin libltdl7 pigz +0 upgraded, 7 newly installed, 0 to remove and 4 not upgraded. +Need to get 96.7 MB of archives. +After this operation, 407 MB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu bionic/universe amd64 pigz amd64 2.4-1 [57.4 kB] +Get:2 https://download.docker.com/linux/ubuntu bionic/stable amd64 containerd.io amd64 1.4.9-1 [24.7 MB] +Get:3 http://archive.ubuntu.com/ubuntu bionic/main amd64 libltdl7 amd64 2.4.6-2 [38.8 kB] +Get:4 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce-cli amd64 5:20.10.8~3-0~ubuntu-bionic [38.8 MB] +Get:5 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce amd64 5:20.10.8~3-0~ubuntu-bionic [21.2 MB] +Get:6 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce-rootless-extras amd64 5:20.10.8~3-0~ubuntu-bionic [7911 kB] +Get:7 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-scan-plugin amd64 0.8.0~ubuntu-bionic [3888 kB] +Fetched 96.7 MB in 3s (28.7 MB/s) + Selecting previously unselected package pigz. +(Reading database ... 61441 files and directories currently installed.) +Preparing to unpack .../0-pigz_2.4-1_amd64.deb ... +Unpacking pigz (2.4-1) ... +Selecting previously unselected package containerd.io. +Preparing to unpack .../1-containerd.io_1.4.9-1_amd64.deb ... +Unpacking containerd.io (1.4.9-1) ... +Selecting previously unselected package docker-ce-cli. +Preparing to unpack .../2-docker-ce-cli_5%3a20.10.8~3-0~ubuntu-bionic_amd64.deb ... +Unpacking docker-ce-cli (5:20.10.8~3-0~ubuntu-bionic) ... +Selecting previously unselected package docker-ce. +Preparing to unpack .../3-docker-ce_5%3a20.10.8~3-0~ubuntu-bionic_amd64.deb ... +Unpacking docker-ce (5:20.10.8~3-0~ubuntu-bionic) ... +Selecting previously unselected package docker-ce-rootless-extras. +Preparing to unpack .../4-docker-ce-rootless-extras_5%3a20.10.8~3-0~ubuntu-bionic_amd64.deb ... +Unpacking docker-ce-rootless-extras (5:20.10.8~3-0~ubuntu-bionic) ... +Selecting previously unselected package docker-scan-plugin. +Preparing to unpack .../5-docker-scan-plugin_0.8.0~ubuntu-bionic_amd64.deb ... +Unpacking docker-scan-plugin (0.8.0~ubuntu-bionic) ... +Selecting previously unselected package libltdl7:amd64. +Preparing to unpack .../6-libltdl7_2.4.6-2_amd64.deb ... +Unpacking libltdl7:amd64 (2.4.6-2) ... +Setting up containerd.io (1.4.9-1) ... +Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service. +Setting up docker-ce-rootless-extras (5:20.10.8~3-0~ubuntu-bionic) ... +Setting up docker-scan-plugin (0.8.0~ubuntu-bionic) ... +Setting up libltdl7:amd64 (2.4.6-2) ... +Setting up docker-ce-cli (5:20.10.8~3-0~ubuntu-bionic) ... +Setting up pigz (2.4-1) ... +Setting up docker-ce (5:20.10.8~3-0~ubuntu-bionic) ... +Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service. +Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket. +Processing triggers for libc-bin (2.27-3ubuntu1.4) ... +Processing triggers for systemd (237-3ubuntu10.51) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... +Processing triggers for ureadahead (0.100.0-21) ... +Adding user to group 'docker' +... restarted Docker service +Client: Docker Engine - Community + Version: 20.10.8 + API version: 1.41 + Go version: go1.16.6 + Git commit: 3967b7d + Built: Fri Jul 30 19:54:08 2021 + OS/Arch: linux/amd64 + Context: default + Experimental: true + +Server: Docker Engine - Community + Engine: + Version: 20.10.8 + API version: 1.41 (minimum version 1.12) + Go version: go1.16.6 + Git commit: 75249d8 + Built: Fri Jul 30 19:52:16 2021 + OS/Arch: linux/amd64 + Experimental: false + containerd: + Version: 1.4.9 + GitCommit: e25210fe30a0a703442421b0f60afac609f950a3 + runc: + Version: 1.0.1 + GitCommit: v1.0.1-0-g4144b63 + docker-init: + Version: 0.19.0 + GitCommit: de40ad0 +... Docker CE installation done +Creating folders for installation +Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:6 http://security.ubuntu.com/ubuntu bionic-security InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +apt-transport-https is already the newest version (1.6.14). +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:2 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:7 http://security.ubuntu.com/ubuntu bionic-security InRelease +Get:6 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [9383 B] +Get:8 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 Packages [49.4 kB] +Fetched 58.8 kB in 1s (56.0 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:7 http://security.ubuntu.com/ubuntu bionic-security InRelease +Hit:6 https://packages.cloud.google.com/apt kubernetes-xenial InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Installing Kubernetes Packages ... +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following additional packages will be installed: + conntrack cri-tools kubernetes-cni socat +The following NEW packages will be installed: + conntrack cri-tools kubeadm kubectl kubelet kubernetes-cni socat +0 upgraded, 7 newly installed, 0 to remove and 4 not upgraded. +Need to get 71.4 MB of archives. +After this operation, 302 MB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu bionic/main amd64 conntrack amd64 1:1.4.4+snapshot20161117-6ubuntu2 [30.6 kB] +Get:2 http://archive.ubuntu.com/ubuntu bionic/main amd64 socat amd64 1.7.3.2-2ubuntu2 [342 kB] +Get:3 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 cri-tools amd64 1.13.0-01 [8775 kB] +Get:4 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubernetes-cni amd64 0.8.7-00 [25.0 MB] +Get:5 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubelet amd64 1.15.0-00 [20.2 MB] +Get:6 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubectl amd64 1.15.0-00 [8763 kB] +Get:7 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubeadm amd64 1.15.0-00 [8246 kB] +Fetched 71.4 MB in 2s (32.2 MB/s) + Selecting previously unselected package conntrack. +(Reading database ... 61694 files and directories currently installed.) +Preparing to unpack .../0-conntrack_1%3a1.4.4+snapshot20161117-6ubuntu2_amd64.deb ... +Unpacking conntrack (1:1.4.4+snapshot20161117-6ubuntu2) ... +Selecting previously unselected package cri-tools. +Preparing to unpack .../1-cri-tools_1.13.0-01_amd64.deb ... +Unpacking cri-tools (1.13.0-01) ... +Selecting previously unselected package kubernetes-cni. +Preparing to unpack .../2-kubernetes-cni_0.8.7-00_amd64.deb ... +Unpacking kubernetes-cni (0.8.7-00) ... +Selecting previously unselected package socat. +Preparing to unpack .../3-socat_1.7.3.2-2ubuntu2_amd64.deb ... +Unpacking socat (1.7.3.2-2ubuntu2) ... +Selecting previously unselected package kubelet. +Preparing to unpack .../4-kubelet_1.15.0-00_amd64.deb ... +Unpacking kubelet (1.15.0-00) ... +Selecting previously unselected package kubectl. +Preparing to unpack .../5-kubectl_1.15.0-00_amd64.deb ... +Unpacking kubectl (1.15.0-00) ... +Selecting previously unselected package kubeadm. +Preparing to unpack .../6-kubeadm_1.15.0-00_amd64.deb ... +Unpacking kubeadm (1.15.0-00) ... +Setting up conntrack (1:1.4.4+snapshot20161117-6ubuntu2) ... +Setting up kubernetes-cni (0.8.7-00) ... +Setting up cri-tools (1.13.0-01) ... +Setting up socat (1.7.3.2-2ubuntu2) ... +Setting up kubelet (1.15.0-00) ... +Created symlink /etc/systemd/system/multi-user.target.wants/kubelet.service → /lib/systemd/system/kubelet.service. +Setting up kubectl (1.15.0-00) ... +Setting up kubeadm (1.15.0-00) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... +kubelet set on hold. +kubeadm set on hold. +kubectl set on hold. +I0906 10:14:00.311428 10501 version.go:248] remote version is much newer: v1.22.1; falling back to: stable-1.15 +[init] Using Kubernetes version: v1.15.12 +[preflight] Running pre-flight checks + [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/ + [WARNING SystemVerification]: this Docker version is not on the list of validated versions: 20.10.8. Latest validated version: 18.09 +[preflight] Pulling images required for setting up a Kubernetes cluster +[preflight] This might take a minute or two, depending on the speed of your internet connection +[preflight] You can also perform this action in beforehand using 'kubeadm config images pull' +[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env" +[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml" +[kubelet-start] Activating the kubelet service +[certs] Using certificateDir folder "/etc/kubernetes/pki" +[certs] Generating "etcd/ca" certificate and key +[certs] Generating "etcd/peer" certificate and key +[certs] etcd/peer serving cert is signed for DNS names [osm localhost] and IPs [192.168.64.19 127.0.0.1 ::1] +[certs] Generating "apiserver-etcd-client" certificate and key +[certs] Generating "etcd/server" certificate and key +[certs] etcd/server serving cert is signed for DNS names [osm localhost] and IPs [192.168.64.19 127.0.0.1 ::1] +[certs] Generating "etcd/healthcheck-client" certificate and key +[certs] Generating "ca" certificate and key +[certs] Generating "apiserver-kubelet-client" certificate and key +[certs] Generating "apiserver" certificate and key +[certs] apiserver serving cert is signed for DNS names [osm kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 192.168.64.19] +[certs] Generating "front-proxy-ca" certificate and key +[certs] Generating "front-proxy-client" certificate and key +[certs] Generating "sa" key and public key +[kubeconfig] Using kubeconfig folder "/etc/kubernetes" +[kubeconfig] Writing "admin.conf" kubeconfig file +[kubeconfig] Writing "kubelet.conf" kubeconfig file +[kubeconfig] Writing "controller-manager.conf" kubeconfig file +[kubeconfig] Writing "scheduler.conf" kubeconfig file +[control-plane] Using manifest folder "/etc/kubernetes/manifests" +[control-plane] Creating static Pod manifest for "kube-apiserver" +[control-plane] Creating static Pod manifest for "kube-controller-manager" +[control-plane] Creating static Pod manifest for "kube-scheduler" +[etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests" +[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s +[apiclient] All control plane components are healthy after 25.511910 seconds +[upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace +[kubelet] Creating a ConfigMap "kubelet-config-1.15" in namespace kube-system with the configuration for the kubelets in the cluster +[upload-certs] Skipping phase. Please see --upload-certs +[mark-control-plane] Marking the node osm as control-plane by adding the label "node-role.kubernetes.io/master=''" +[mark-control-plane] Marking the node osm as control-plane by adding the taints [node-role.kubernetes.io/master:NoSchedule] +[bootstrap-token] Using token: 1bjm75.9ghzdclhrx6enqgb +[bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles +[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials +[bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token +[bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster +[bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace +[addons] Applied essential addon: CoreDNS +[addons] Applied essential addon: kube-proxy + +Your Kubernetes control-plane has initialized successfully! + +To start using your cluster, you need to run the following as a regular user: + + mkdir -p $HOME/.kube + sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config + +You should now deploy a pod network to the cluster. +Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: + https://kubernetes.io/docs/concepts/cluster-administration/addons/ + +Then you can join any number of worker nodes by running the following on each as root: + +kubeadm join 192.168.64.19:6443 --token 1bjm75.9ghzdclhrx6enqgb \ + --discovery-token-ca-cert-hash sha256:439d23d440f5fe042d93485a9c94342d6eb934e1c051ff5f196842c3e5135688 +Error from server (NotFound): namespaces "osm" not found +podsecuritypolicy.policy/psp.flannel.unprivileged created +clusterrole.rbac.authorization.k8s.io/flannel created +clusterrolebinding.rbac.authorization.k8s.io/flannel created +serviceaccount/flannel created +configmap/kube-flannel-cfg created +daemonset.apps/kube-flannel-ds created +node/osm untainted +error: error reading [/tmp/openebs.eW4VwQ]: recognized file extensions are [.json .yaml .yml] +Waiting for storageclass + +### Mon Sep 6 10:22:04 CEST 2021 install_k8s_storageclass: FATAL error: Storageclass not ready after 400 seconds. Cannot install openebs +BACKTRACE: +### FATAL /usr/share/osm-devops/common/logging 39 +### install_k8s_storageclass /usr/share/osm-devops/installers/full_install_osm.sh 848 +### install_lightweight /usr/share/osm-devops/installers/full_install_osm.sh 1211 +### main /usr/share/osm-devops/installers/full_install_osm.sh 1876 +------- +ubuntu@osm:~$ exit +exit +mactel:source-watcher andrea$ mutlipass stop osm +-bash: mutlipass: command not found +mactel:source-watcher andrea$ multipass stop osm +mactel:source-watcher andrea$ multipass delete osm +mactel:source-watcher andrea$ + +``` \ No newline at end of file diff --git a/_tmp/osm-install-issues/mp.osm10-ubuntu20.md b/_tmp/osm-install-issues/mp.osm10-ubuntu20.md new file mode 100644 index 0000000..885ff87 --- /dev/null +++ b/_tmp/osm-install-issues/mp.osm10-ubuntu20.md @@ -0,0 +1,485 @@ +```bash + +Last login: Fri Sep 3 10:27:10 on ttys010 +mactel:source-watcher andrea$ brew update +Error: + homebrew-core is a shallow clone. + homebrew-cask is a shallow clone. +To `brew update`, first run: + git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow + git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow +These commands may take a few minutes to run due to the large size of the repositories. +This restriction has been made on GitHub's request because updating shallow +clones is an extremely expensive operation due to the tree layout and traffic of +Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you +automatically to avoid repeatedly performing an expensive unshallow operation in +CI systems (which should instead be fixed to not use shallow clones). Sorry for +the inconvenience! +mactel:source-watcher andrea$ brew install multipass +Error: + homebrew-core is a shallow clone. + homebrew-cask is a shallow clone. +To `brew update`, first run: + git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow + git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow +These commands may take a few minutes to run due to the large size of the repositories. +This restriction has been made on GitHub's request because updating shallow +clones is an extremely expensive operation due to the tree layout and traffic of +Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you +automatically to avoid repeatedly performing an expensive unshallow operation in +CI systems (which should instead be fixed to not use shallow clones). Sorry for +the inconvenience! +==> Downloading https://github.com/CanonicalLtd/multipass/releases/download/v1.6.2/multipass-1.6.2+mac-Darwin.pkg +==> Downloading from https://github-releases.githubusercontent.com/114128199/4dd79180-722d-11eb-8783-4cf31c574f09?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CS +######################################################################## 100.0% +==> Installing Cask multipass +==> Running installer for multipass; your password may be necessary. +Package installers may write to any location; options such as `--appdir` are ignored. +Password: +installer: Package name is multipass +installer: Installing at base path / +installer: The install was successful. +🍺 multipass was successfully installed! +mactel:source-watcher andrea$ multipass launch --name osm +Launched: osm + +########################################################################################### +New Multipass 1.7.0 release +Workflows, auto-bridges and more... + +Go here for more information: https://github.com/CanonicalLtd/multipass/releases/tag/v1.7.0 +########################################################################################### +mactel:source-watcher andrea$ multipass list +Name State IPv4 Image +osm Running 192.168.64.19 Ubuntu 20.04 LTS +mactel:source-watcher andrea$ multipass exec osm -- bash +To run a command as administrator (user "root"), use "sudo ". +See "man sudo_root" for details. + +ubuntu@osm:~$ wget https://osm-download.etsi.org/ftp/osm-10.0-ten/install_osm.sh +--2021-09-03 20:01:46-- https://osm-download.etsi.org/ftp/osm-10.0-ten/install_osm.sh +Resolving osm-download.etsi.org (osm-download.etsi.org)... 195.238.226.47 +Connecting to osm-download.etsi.org (osm-download.etsi.org)|195.238.226.47|:443... connected. +HTTP request sent, awaiting response... 200 OK +Length: 9348 (9.1K) [text/x-sh] +Saving to: ‘install_osm.sh’ + +install_osm.sh 100%[============================================================================================>] 9.13K --.-KB/s in 0s + +2021-09-03 20:01:47 (39.4 MB/s) - ‘install_osm.sh’ saved [9348/9348] + +ubuntu@osm:~$ pwd +/home/ubuntu +ubuntu@osm:~$ chmod +x install_osm.sh +ubuntu@osm:~$ ./install_osm.sh 2>&1 | tee osm_install_log.txt +Checking required packages: software-properties-common apt-transport-https +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease +Get:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB] +Get:3 http://archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB] +Get:4 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease [4070 B] +Get:5 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB] +Get:6 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages [8628 kB] +Get:7 http://archive.ubuntu.com/ubuntu focal/universe Translation-en [5124 kB] +Get:8 http://archive.ubuntu.com/ubuntu focal/universe amd64 c-n-f Metadata [265 kB] +Get:9 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages [144 kB] +Get:10 http://archive.ubuntu.com/ubuntu focal/multiverse Translation-en [104 kB] +Get:11 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 c-n-f Metadata [9136 B] +Get:12 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1175 kB] +Get:13 http://archive.ubuntu.com/ubuntu focal-updates/main Translation-en [254 kB] +Get:14 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 c-n-f Metadata [14.1 kB] +Get:15 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [853 kB] +Get:16 http://archive.ubuntu.com/ubuntu focal-updates/universe Translation-en [181 kB] +Get:17 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [18.8 kB] +Get:18 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [24.6 kB] +Get:19 http://archive.ubuntu.com/ubuntu focal-updates/multiverse Translation-en [6776 B] +Get:20 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 c-n-f Metadata [620 B] +Get:21 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/devops amd64 Packages [479 B] +Get:22 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [2568 B] +Get:23 http://archive.ubuntu.com/ubuntu focal-backports/main Translation-en [1120 B] +Get:24 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 c-n-f Metadata [400 B] +Get:25 http://archive.ubuntu.com/ubuntu focal-backports/restricted amd64 c-n-f Metadata [116 B] +Get:26 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [5812 B] +Get:27 http://archive.ubuntu.com/ubuntu focal-backports/universe Translation-en [2068 B] +Get:28 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 c-n-f Metadata [288 B] +Get:29 http://archive.ubuntu.com/ubuntu focal-backports/multiverse amd64 c-n-f Metadata [116 B] +Get:30 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [830 kB] +Get:31 http://security.ubuntu.com/ubuntu focal-security/main Translation-en [162 kB] +Get:32 http://security.ubuntu.com/ubuntu focal-security/main amd64 c-n-f Metadata [8604 B] +Get:33 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [374 kB] +Get:34 http://security.ubuntu.com/ubuntu focal-security/restricted Translation-en [53.7 kB] +Get:35 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [638 kB] +Get:36 http://security.ubuntu.com/ubuntu focal-security/universe Translation-en [101 kB] +Get:37 http://security.ubuntu.com/ubuntu focal-security/universe amd64 c-n-f Metadata [12.3 kB] +Get:38 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [21.9 kB] +Get:39 http://security.ubuntu.com/ubuntu focal-security/multiverse Translation-en [4948 B] +Get:40 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 c-n-f Metadata [540 B] +Fetched 19.4 MB in 4s (4432 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:4 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:5 http://security.ubuntu.com/ubuntu focal-security InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:4 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:5 http://security.ubuntu.com/ubuntu focal-security InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + osm-devops +0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded. +Need to get 824 kB of archives. +After this operation, 9116 kB of additional disk space will be used. +Get:1 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/devops amd64 osm-devops all 10.0.1-1 [824 kB] +Fetched 824 kB in 0s (2212 kB/s) + Selecting previously unselected package osm-devops. +(Reading database ... 63510 files and directories currently installed.) +Preparing to unpack .../osm-devops_10.0.1-1_all.deb ... +Unpacking osm-devops (10.0.1-1) ... +Setting up osm-devops (10.0.1-1) ... +Checking required packages: git wget curl tar +jq 1.5+dfsg-1 from Canonical* installed +## Fri Sep 3 20:03:04 CEST 2021 source: logging sourced +## Fri Sep 3 20:03:04 CEST 2021 source: config sourced +## Fri Sep 3 20:03:04 CEST 2021 source: container sourced +## Fri Sep 3 20:03:04 CEST 2021 source: git_functions sourced +The installation will do the following + 1. Install and configure LXD + 2. Install juju + 3. Install docker CE + 4. Disable swap space + 5. Install and initialize Kubernetes + as pre-requirements. + Do you want to proceed (Y/n)? y +Installing lightweight build of OSM +Checking required packages: snapd +* Applying /etc/sysctl.d/10-console-messages.conf ... +kernel.printk = 4 4 1 7 +* Applying /etc/sysctl.d/10-ipv6-privacy.conf ... +net.ipv6.conf.all.use_tempaddr = 2 +net.ipv6.conf.default.use_tempaddr = 2 +* Applying /etc/sysctl.d/10-kernel-hardening.conf ... +kernel.kptr_restrict = 1 +* Applying /etc/sysctl.d/10-link-restrictions.conf ... +fs.protected_hardlinks = 1 +fs.protected_symlinks = 1 +* Applying /etc/sysctl.d/10-magic-sysrq.conf ... +kernel.sysrq = 176 +* Applying /etc/sysctl.d/10-network-security.conf ... +net.ipv4.conf.default.rp_filter = 2 +net.ipv4.conf.all.rp_filter = 2 +* Applying /etc/sysctl.d/10-ptrace.conf ... +kernel.yama.ptrace_scope = 1 +* Applying /etc/sysctl.d/10-zeropage.conf ... +vm.mmap_min_addr = 65536 +* Applying /usr/lib/sysctl.d/50-default.conf ... +net.ipv4.conf.default.promote_secondaries = 1 +sysctl: setting key "net.ipv4.conf.all.promote_secondaries": Invalid argument +net.ipv4.ping_group_range = 0 2147483647 +net.core.default_qdisc = fq_codel +fs.protected_regular = 1 +fs.protected_fifos = 1 +* Applying /usr/lib/sysctl.d/50-pid-max.conf ... +kernel.pid_max = 4194304 +* Applying /etc/sysctl.d/60-lxd-production.conf ... +fs.inotify.max_queued_events = 1048576 +fs.inotify.max_user_instances = 1048576 +fs.inotify.max_user_watches = 1048576 +vm.max_map_count = 262144 +kernel.dmesg_restrict = 1 +net.ipv4.neigh.default.gc_thresh3 = 8192 +net.ipv6.neigh.default.gc_thresh3 = 8192 +net.core.bpf_jit_limit = 3000000000 +kernel.keys.maxkeys = 2000 +kernel.keys.maxbytes = 2000000 +* Applying /etc/sysctl.d/99-cloudimg-ipv6.conf ... +net.ipv6.conf.all.use_tempaddr = 0 +net.ipv6.conf.default.use_tempaddr = 0 +* Applying /etc/sysctl.d/99-sysctl.conf ... +* Applying /usr/lib/sysctl.d/protect-links.conf ... +fs.protected_fifos = 1 +fs.protected_hardlinks = 1 +fs.protected_regular = 2 +fs.protected_symlinks = 1 +* Applying /etc/sysctl.conf ... +Reading package lists... +Building dependency tree... +Reading state information... +Package 'lxcfs' is not installed, so not removed +Package 'lxd' is not installed, so not removed +Package 'lxd-client' is not installed, so not removed +Package 'liblxc1' is not installed, so not removed +0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded. +snap "lxd" is already installed, see 'snap help refresh' +To start your first instance, try: lxc launch ubuntu:18.04 + +Installing Docker CE ... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +ca-certificates is already the newest version (20210119~20.04.1). +ca-certificates set to manually installed. +software-properties-common is already the newest version (0.98.9.5). +software-properties-common set to manually installed. +The following NEW packages will be installed: + apt-transport-https +0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded. +Need to get 4680 B of archives. +After this operation, 162 kB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 apt-transport-https all 2.0.6 [4680 B] +Fetched 4680 B in 0s (75.1 kB/s) + Selecting previously unselected package apt-transport-https. +(Reading database ... 64818 files and directories currently installed.) +Preparing to unpack .../apt-transport-https_2.0.6_all.deb ... +Unpacking apt-transport-https (2.0.6) ... +Setting up apt-transport-https (2.0.6) ... +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease +Get:2 https://download.docker.com/linux/ubuntu focal InRelease [52.1 kB] +Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:6 http://security.ubuntu.com/ubuntu focal-security InRelease +Get:7 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages [10.7 kB] +Fetched 62.9 kB in 1s (87.0 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following additional packages will be installed: + containerd.io docker-ce-cli docker-ce-rootless-extras docker-scan-plugin + pigz slirp4netns +Suggested packages: + aufs-tools cgroupfs-mount | cgroup-lite +The following NEW packages will be installed: + containerd.io docker-ce docker-ce-cli docker-ce-rootless-extras + docker-scan-plugin pigz slirp4netns +0 upgraded, 7 newly installed, 0 to remove and 5 not upgraded. +Need to get 96.7 MB of archives. +After this operation, 406 MB of additional disk space will be used. +Get:1 https://download.docker.com/linux/ubuntu focal/stable amd64 containerd.io amd64 1.4.9-1 [24.7 MB] +Get:2 http://archive.ubuntu.com/ubuntu focal/universe amd64 pigz amd64 2.4-1 [57.4 kB] +Get:3 http://archive.ubuntu.com/ubuntu focal/universe amd64 slirp4netns amd64 0.4.3-1 [74.3 kB] +Get:4 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce-cli amd64 5:20.10.8~3-0~ubuntu-focal [38.8 MB] +Get:5 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce amd64 5:20.10.8~3-0~ubuntu-focal [21.2 MB] +Get:6 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce-rootless-extras amd64 5:20.10.8~3-0~ubuntu-focal [7917 kB] +Get:7 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-scan-plugin amd64 0.8.0~ubuntu-focal [3889 kB] +Fetched 96.7 MB in 2s (43.0 MB/s) + Selecting previously unselected package pigz. +(Reading database ... 64822 files and directories currently installed.) +Preparing to unpack .../0-pigz_2.4-1_amd64.deb ... +Unpacking pigz (2.4-1) ... +Selecting previously unselected package containerd.io. +Preparing to unpack .../1-containerd.io_1.4.9-1_amd64.deb ... +Unpacking containerd.io (1.4.9-1) ... +Selecting previously unselected package docker-ce-cli. +Preparing to unpack .../2-docker-ce-cli_5%3a20.10.8~3-0~ubuntu-focal_amd64.deb ... +Unpacking docker-ce-cli (5:20.10.8~3-0~ubuntu-focal) ... +Selecting previously unselected package docker-ce. +Preparing to unpack .../3-docker-ce_5%3a20.10.8~3-0~ubuntu-focal_amd64.deb ... +Unpacking docker-ce (5:20.10.8~3-0~ubuntu-focal) ... +Selecting previously unselected package docker-ce-rootless-extras. +Preparing to unpack .../4-docker-ce-rootless-extras_5%3a20.10.8~3-0~ubuntu-focal_amd64.deb ... +Unpacking docker-ce-rootless-extras (5:20.10.8~3-0~ubuntu-focal) ... +Selecting previously unselected package docker-scan-plugin. +Preparing to unpack .../5-docker-scan-plugin_0.8.0~ubuntu-focal_amd64.deb ... +Unpacking docker-scan-plugin (0.8.0~ubuntu-focal) ... +Selecting previously unselected package slirp4netns. +Preparing to unpack .../6-slirp4netns_0.4.3-1_amd64.deb ... +Unpacking slirp4netns (0.4.3-1) ... +Setting up slirp4netns (0.4.3-1) ... +Setting up docker-scan-plugin (0.8.0~ubuntu-focal) ... +Setting up containerd.io (1.4.9-1) ... +Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service. +Setting up docker-ce-cli (5:20.10.8~3-0~ubuntu-focal) ... +Setting up pigz (2.4-1) ... +Setting up docker-ce-rootless-extras (5:20.10.8~3-0~ubuntu-focal) ... +Setting up docker-ce (5:20.10.8~3-0~ubuntu-focal) ... +Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service. +Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket. +Processing triggers for man-db (2.9.1-1) ... +Processing triggers for systemd (245.4-4ubuntu3.11) ... +Adding user to group 'docker' +... restarted Docker service +Client: Docker Engine - Community + Version: 20.10.8 + API version: 1.41 + Go version: go1.16.6 + Git commit: 3967b7d + Built: Fri Jul 30 19:54:27 2021 + OS/Arch: linux/amd64 + Context: default + Experimental: true + +Server: Docker Engine - Community + Engine: + Version: 20.10.8 + API version: 1.41 (minimum version 1.12) + Go version: go1.16.6 + Git commit: 75249d8 + Built: Fri Jul 30 19:52:33 2021 + OS/Arch: linux/amd64 + Experimental: false + containerd: + Version: 1.4.9 + GitCommit: e25210fe30a0a703442421b0f60afac609f950a3 + runc: + Version: 1.0.1 + GitCommit: v1.0.1-0-g4144b63 + docker-init: + Version: 0.19.0 + GitCommit: de40ad0 +... Docker CE installation done +Creating folders for installation +Hit:1 https://download.docker.com/linux/ubuntu focal InRelease +Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:6 http://security.ubuntu.com/ubuntu focal-security InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +apt-transport-https is already the newest version (2.0.6). +0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded. +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 https://download.docker.com/linux/ubuntu focal InRelease +Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:6 http://security.ubuntu.com/ubuntu focal-security InRelease +Get:7 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [9383 B] +Get:8 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 Packages [49.4 kB] +Fetched 58.8 kB in 1s (58.7 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 https://download.docker.com/linux/ubuntu focal InRelease +Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:6 https://packages.cloud.google.com/apt kubernetes-xenial InRelease +Hit:7 http://security.ubuntu.com/ubuntu focal-security InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Installing Kubernetes Packages ... +Reading package lists... +Building dependency tree... +Reading state information... +The following additional packages will be installed: + conntrack cri-tools ebtables kubernetes-cni socat +Suggested packages: + nftables +The following NEW packages will be installed: + conntrack cri-tools ebtables kubeadm kubectl kubelet kubernetes-cni socat +0 upgraded, 8 newly installed, 0 to remove and 5 not upgraded. +Need to get 71.5 MB of archives. +After this operation, 303 MB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 conntrack amd64 1:1.4.5-2 [30.3 kB] +Get:2 http://archive.ubuntu.com/ubuntu focal/main amd64 ebtables amd64 2.0.11-3build1 [80.3 kB] +Get:3 http://archive.ubuntu.com/ubuntu focal/main amd64 socat amd64 1.7.3.3-2 [323 kB] +Get:4 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 cri-tools amd64 1.13.0-01 [8775 kB] +Get:5 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubernetes-cni amd64 0.8.7-00 [25.0 MB] +Get:6 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubelet amd64 1.15.0-00 [20.2 MB] +Get:7 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubectl amd64 1.15.0-00 [8763 kB] +Get:8 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubeadm amd64 1.15.0-00 [8246 kB] +Fetched 71.5 MB in 2s (31.7 MB/s) + Selecting previously unselected package conntrack. +(Reading database ... 65073 files and directories currently installed.) +Preparing to unpack .../0-conntrack_1%3a1.4.5-2_amd64.deb ... +Unpacking conntrack (1:1.4.5-2) ... +Selecting previously unselected package cri-tools. +Preparing to unpack .../1-cri-tools_1.13.0-01_amd64.deb ... +Unpacking cri-tools (1.13.0-01) ... +Selecting previously unselected package ebtables. +Preparing to unpack .../2-ebtables_2.0.11-3build1_amd64.deb ... +Unpacking ebtables (2.0.11-3build1) ... +Selecting previously unselected package kubernetes-cni. +Preparing to unpack .../3-kubernetes-cni_0.8.7-00_amd64.deb ... +Unpacking kubernetes-cni (0.8.7-00) ... +Selecting previously unselected package socat. +Preparing to unpack .../4-socat_1.7.3.3-2_amd64.deb ... +Unpacking socat (1.7.3.3-2) ... +Selecting previously unselected package kubelet. +Preparing to unpack .../5-kubelet_1.15.0-00_amd64.deb ... +Unpacking kubelet (1.15.0-00) ... +Selecting previously unselected package kubectl. +Preparing to unpack .../6-kubectl_1.15.0-00_amd64.deb ... +Unpacking kubectl (1.15.0-00) ... +Selecting previously unselected package kubeadm. +Preparing to unpack .../7-kubeadm_1.15.0-00_amd64.deb ... +Unpacking kubeadm (1.15.0-00) ... +Setting up conntrack (1:1.4.5-2) ... +Setting up kubectl (1.15.0-00) ... +Setting up ebtables (2.0.11-3build1) ... +Setting up socat (1.7.3.3-2) ... +Setting up cri-tools (1.13.0-01) ... +Setting up kubernetes-cni (0.8.7-00) ... +Setting up kubelet (1.15.0-00) ... +Created symlink /etc/systemd/system/multi-user.target.wants/kubelet.service → /lib/systemd/system/kubelet.service. +Setting up kubeadm (1.15.0-00) ... +Processing triggers for man-db (2.9.1-1) ... +kubelet set on hold. +kubeadm set on hold. +kubectl set on hold. +I0903 20:04:29.012574 9138 version.go:248] remote version is much newer: v1.22.1; falling back to: stable-1.15 +[init] Using Kubernetes version: v1.15.12 +[preflight] Running pre-flight checks + [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/ + [WARNING SystemVerification]: this Docker version is not on the list of validated versions: 20.10.8. Latest validated version: 18.09 +error execution phase preflight: [preflight] Some fatal errors occurred: + [ERROR NumCPU]: the number of available CPUs 1 is less than the required 2 +[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...` +cp: cannot stat '/etc/kubernetes/admin.conf': No such file or directory +chown: cannot access '/home/ubuntu/.kube/config': No such file or directory +The connection to the server localhost:8080 was refused - did you specify the right host or port? +unable to recognize "/tmp/flannel.L9QcEh/kube-flannel.yml": Get http://localhost:8080/api?timeout=32s: dial tcp 127.0.0.1:8080: connect: connection refused +unable to recognize "/tmp/flannel.L9QcEh/kube-flannel.yml": Get http://localhost:8080/api?timeout=32s: dial tcp 127.0.0.1:8080: connect: connection refused +unable to recognize "/tmp/flannel.L9QcEh/kube-flannel.yml": Get http://localhost:8080/api?timeout=32s: dial tcp 127.0.0.1:8080: connect: connection refused +unable to recognize "/tmp/flannel.L9QcEh/kube-flannel.yml": Get http://localhost:8080/api?timeout=32s: dial tcp 127.0.0.1:8080: connect: connection refused +unable to recognize "/tmp/flannel.L9QcEh/kube-flannel.yml": Get http://localhost:8080/api?timeout=32s: dial tcp 127.0.0.1:8080: connect: connection refused +unable to recognize "/tmp/flannel.L9QcEh/kube-flannel.yml": Get http://localhost:8080/api?timeout=32s: dial tcp 127.0.0.1:8080: connect: connection refused + +### Fri Sep 3 20:04:36 CEST 2021 deploy_cni_provider: FATAL error: Cannot Install Flannel +BACKTRACE: +### FATAL /usr/share/osm-devops/common/logging 39 +### deploy_cni_provider /usr/share/osm-devops/installers/full_install_osm.sh 874 +### install_lightweight /usr/share/osm-devops/installers/full_install_osm.sh 1209 +### main /usr/share/osm-devops/installers/full_install_osm.sh 1876 +------- +ubuntu@osm:~$ exit +exit +mactel:source-watcher andrea$ multipass stop osm +Stopping osm -[2021-09-03T20:09:14.973] [error] [osm] process error occurred Crashed + +mactel:source-watcher andrea$ multipass list +Name State IPv4 Image +osm Stopped -- Ubuntu 20.04 LTS +mactel:source-watcher andrea$ multipass delete osm +mactel:source-watcher andrea$ multipass list +Name State IPv4 Image +osm Deleted -- Not Available +mactel:source-watcher andrea$ multipass purge +mactel:source-watcher andrea$ multipass list +No instances found. +mactel:source-watcher andrea$ + +``` \ No newline at end of file diff --git a/_tmp/osm-install-issues/mp.osm10-ubuntu20.min-hw.md b/_tmp/osm-install-issues/mp.osm10-ubuntu20.min-hw.md new file mode 100644 index 0000000..3549a85 --- /dev/null +++ b/_tmp/osm-install-issues/mp.osm10-ubuntu20.min-hw.md @@ -0,0 +1,487 @@ +```bash + +Last login: Fri Sep 3 20:09:34 on ttys011 +mactel:source-watcher andrea$ multipass launch --name osm --cpus 2 --mem 6G --disk 40G +Launched: osm +mactel:source-watcher andrea$ multipass exec osm -- bash +To run a command as administrator (user "root"), use "sudo ". +See "man sudo_root" for details. + +ubuntu@osm:~$ wget https://osm-download.etsi.org/ftp/osm-10.0-ten/install_osm.sh +--2021-09-03 20:20:02-- https://osm-download.etsi.org/ftp/osm-10.0-ten/install_osm.sh +Resolving osm-download.etsi.org (osm-download.etsi.org)... 195.238.226.47 +Connecting to osm-download.etsi.org (osm-download.etsi.org)|195.238.226.47|:443... connected. +HTTP request sent, awaiting response... 200 OK +Length: 9348 (9.1K) [text/x-sh] +Saving to: ‘install_osm.sh’ + +install_osm.sh 100%[============================================================================================>] 9.13K --.-KB/s in 0.003s + +2021-09-03 20:20:02 (3.20 MB/s) - ‘install_osm.sh’ saved [9348/9348] + +ubuntu@osm:~$ chmod +x install_osm.sh +ubuntu@osm:~$ ./install_osm.sh 2>&1 | tee osm_install_log.txt +Checking required packages: software-properties-common apt-transport-https +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease +Get:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB] +Get:3 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease [4070 B] +Get:4 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB] +Get:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB] +Get:6 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages [8628 kB] +Get:7 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/devops amd64 Packages [479 B] +Get:8 http://archive.ubuntu.com/ubuntu focal/universe Translation-en [5124 kB] +Get:9 http://archive.ubuntu.com/ubuntu focal/universe amd64 c-n-f Metadata [265 kB] +Get:10 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages [144 kB] +Get:11 http://archive.ubuntu.com/ubuntu focal/multiverse Translation-en [104 kB] +Get:12 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 c-n-f Metadata [9136 B] +Get:13 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1175 kB] +Get:14 http://archive.ubuntu.com/ubuntu focal-updates/main Translation-en [254 kB] +Get:15 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 c-n-f Metadata [14.1 kB] +Get:16 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [853 kB] +Get:17 http://archive.ubuntu.com/ubuntu focal-updates/universe Translation-en [181 kB] +Get:18 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [18.8 kB] +Get:19 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [24.6 kB] +Get:20 http://archive.ubuntu.com/ubuntu focal-updates/multiverse Translation-en [6776 B] +Get:21 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 c-n-f Metadata [620 B] +Get:22 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [2568 B] +Get:23 http://archive.ubuntu.com/ubuntu focal-backports/main Translation-en [1120 B] +Get:24 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 c-n-f Metadata [400 B] +Get:25 http://archive.ubuntu.com/ubuntu focal-backports/restricted amd64 c-n-f Metadata [116 B] +Get:26 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [5812 B] +Get:27 http://archive.ubuntu.com/ubuntu focal-backports/universe Translation-en [2068 B] +Get:28 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 c-n-f Metadata [288 B] +Get:29 http://archive.ubuntu.com/ubuntu focal-backports/multiverse amd64 c-n-f Metadata [116 B] +Get:30 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [830 kB] +Get:31 http://security.ubuntu.com/ubuntu focal-security/main Translation-en [162 kB] +Get:32 http://security.ubuntu.com/ubuntu focal-security/main amd64 c-n-f Metadata [8604 B] +Get:33 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [374 kB] +Get:34 http://security.ubuntu.com/ubuntu focal-security/restricted Translation-en [53.7 kB] +Get:35 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [638 kB] +Get:36 http://security.ubuntu.com/ubuntu focal-security/universe Translation-en [101 kB] +Get:37 http://security.ubuntu.com/ubuntu focal-security/universe amd64 c-n-f Metadata [12.3 kB] +Get:38 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [21.9 kB] +Get:39 http://security.ubuntu.com/ubuntu focal-security/multiverse Translation-en [4948 B] +Get:40 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 c-n-f Metadata [540 B] +Fetched 19.4 MB in 4s (5011 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:4 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:5 http://security.ubuntu.com/ubuntu focal-security InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:4 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:5 http://security.ubuntu.com/ubuntu focal-security InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + osm-devops +0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded. +Need to get 824 kB of archives. +After this operation, 9116 kB of additional disk space will be used. +Get:1 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/devops amd64 osm-devops all 10.0.1-1 [824 kB] +Fetched 824 kB in 0s (2128 kB/s) + Selecting previously unselected package osm-devops. +(Reading database ... 63510 files and directories currently installed.) +Preparing to unpack .../osm-devops_10.0.1-1_all.deb ... +Unpacking osm-devops (10.0.1-1) ... +Setting up osm-devops (10.0.1-1) ... +Checking required packages: git wget curl tar +jq 1.5+dfsg-1 from Canonical* installed +## Fri Sep 3 20:20:51 CEST 2021 source: logging sourced +## Fri Sep 3 20:20:51 CEST 2021 source: config sourced +## Fri Sep 3 20:20:51 CEST 2021 source: container sourced +## Fri Sep 3 20:20:51 CEST 2021 source: git_functions sourced +The installation will do the following + 1. Install and configure LXD + 2. Install juju + 3. Install docker CE + 4. Disable swap space + 5. Install and initialize Kubernetes + as pre-requirements. + Do you want to proceed (Y/n)? y +Installing lightweight build of OSM +Checking required packages: snapd +* Applying /etc/sysctl.d/10-console-messages.conf ... +kernel.printk = 4 4 1 7 +* Applying /etc/sysctl.d/10-ipv6-privacy.conf ... +net.ipv6.conf.all.use_tempaddr = 2 +net.ipv6.conf.default.use_tempaddr = 2 +* Applying /etc/sysctl.d/10-kernel-hardening.conf ... +kernel.kptr_restrict = 1 +* Applying /etc/sysctl.d/10-link-restrictions.conf ... +fs.protected_hardlinks = 1 +fs.protected_symlinks = 1 +* Applying /etc/sysctl.d/10-magic-sysrq.conf ... +kernel.sysrq = 176 +* Applying /etc/sysctl.d/10-network-security.conf ... +net.ipv4.conf.default.rp_filter = 2 +net.ipv4.conf.all.rp_filter = 2 +* Applying /etc/sysctl.d/10-ptrace.conf ... +kernel.yama.ptrace_scope = 1 +* Applying /etc/sysctl.d/10-zeropage.conf ... +vm.mmap_min_addr = 65536 +* Applying /usr/lib/sysctl.d/50-default.conf ... +net.ipv4.conf.default.promote_secondaries = 1 +sysctl: setting key "net.ipv4.conf.all.promote_secondaries": Invalid argument +net.ipv4.ping_group_range = 0 2147483647 +net.core.default_qdisc = fq_codel +fs.protected_regular = 1 +fs.protected_fifos = 1 +* Applying /usr/lib/sysctl.d/50-pid-max.conf ... +kernel.pid_max = 4194304 +* Applying /etc/sysctl.d/60-lxd-production.conf ... +fs.inotify.max_queued_events = 1048576 +fs.inotify.max_user_instances = 1048576 +fs.inotify.max_user_watches = 1048576 +vm.max_map_count = 262144 +kernel.dmesg_restrict = 1 +net.ipv4.neigh.default.gc_thresh3 = 8192 +net.ipv6.neigh.default.gc_thresh3 = 8192 +net.core.bpf_jit_limit = 3000000000 +kernel.keys.maxkeys = 2000 +kernel.keys.maxbytes = 2000000 +* Applying /etc/sysctl.d/99-cloudimg-ipv6.conf ... +net.ipv6.conf.all.use_tempaddr = 0 +net.ipv6.conf.default.use_tempaddr = 0 +* Applying /etc/sysctl.d/99-sysctl.conf ... +* Applying /usr/lib/sysctl.d/protect-links.conf ... +fs.protected_fifos = 1 +fs.protected_hardlinks = 1 +fs.protected_regular = 2 +fs.protected_symlinks = 1 +* Applying /etc/sysctl.conf ... +Reading package lists... +Building dependency tree... +Reading state information... +Package 'lxcfs' is not installed, so not removed +Package 'lxd' is not installed, so not removed +Package 'lxd-client' is not installed, so not removed +Package 'liblxc1' is not installed, so not removed +0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded. +snap "lxd" is already installed, see 'snap help refresh' +To start your first instance, try: lxc launch ubuntu:18.04 + +Installing Docker CE ... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +ca-certificates is already the newest version (20210119~20.04.1). +ca-certificates set to manually installed. +software-properties-common is already the newest version (0.98.9.5). +software-properties-common set to manually installed. +The following NEW packages will be installed: + apt-transport-https +0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded. +Need to get 4680 B of archives. +After this operation, 162 kB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 apt-transport-https all 2.0.6 [4680 B] +Fetched 4680 B in 0s (72.8 kB/s) + Selecting previously unselected package apt-transport-https. +(Reading database ... 64818 files and directories currently installed.) +Preparing to unpack .../apt-transport-https_2.0.6_all.deb ... +Unpacking apt-transport-https (2.0.6) ... +Setting up apt-transport-https (2.0.6) ... +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease +Get:2 https://download.docker.com/linux/ubuntu focal InRelease [52.1 kB] +Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:6 http://security.ubuntu.com/ubuntu focal-security InRelease +Get:7 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages [10.7 kB] +Fetched 62.9 kB in 1s (82.5 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following additional packages will be installed: + containerd.io docker-ce-cli docker-ce-rootless-extras docker-scan-plugin + pigz slirp4netns +Suggested packages: + aufs-tools cgroupfs-mount | cgroup-lite +The following NEW packages will be installed: + containerd.io docker-ce docker-ce-cli docker-ce-rootless-extras + docker-scan-plugin pigz slirp4netns +0 upgraded, 7 newly installed, 0 to remove and 5 not upgraded. +Need to get 96.7 MB of archives. +After this operation, 406 MB of additional disk space will be used. +Get:1 https://download.docker.com/linux/ubuntu focal/stable amd64 containerd.io amd64 1.4.9-1 [24.7 MB] +Get:2 http://archive.ubuntu.com/ubuntu focal/universe amd64 pigz amd64 2.4-1 [57.4 kB] +Get:3 http://archive.ubuntu.com/ubuntu focal/universe amd64 slirp4netns amd64 0.4.3-1 [74.3 kB] +Get:4 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce-cli amd64 5:20.10.8~3-0~ubuntu-focal [38.8 MB] +Get:5 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce amd64 5:20.10.8~3-0~ubuntu-focal [21.2 MB] +Get:6 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-ce-rootless-extras amd64 5:20.10.8~3-0~ubuntu-focal [7917 kB] +Get:7 https://download.docker.com/linux/ubuntu focal/stable amd64 docker-scan-plugin amd64 0.8.0~ubuntu-focal [3889 kB] +Fetched 96.7 MB in 2s (46.9 MB/s) + Selecting previously unselected package pigz. +(Reading database ... 64822 files and directories currently installed.) +Preparing to unpack .../0-pigz_2.4-1_amd64.deb ... +Unpacking pigz (2.4-1) ... +Selecting previously unselected package containerd.io. +Preparing to unpack .../1-containerd.io_1.4.9-1_amd64.deb ... +Unpacking containerd.io (1.4.9-1) ... +Selecting previously unselected package docker-ce-cli. +Preparing to unpack .../2-docker-ce-cli_5%3a20.10.8~3-0~ubuntu-focal_amd64.deb ... +Unpacking docker-ce-cli (5:20.10.8~3-0~ubuntu-focal) ... +Selecting previously unselected package docker-ce. +Preparing to unpack .../3-docker-ce_5%3a20.10.8~3-0~ubuntu-focal_amd64.deb ... +Unpacking docker-ce (5:20.10.8~3-0~ubuntu-focal) ... +Selecting previously unselected package docker-ce-rootless-extras. +Preparing to unpack .../4-docker-ce-rootless-extras_5%3a20.10.8~3-0~ubuntu-focal_amd64.deb ... +Unpacking docker-ce-rootless-extras (5:20.10.8~3-0~ubuntu-focal) ... +Selecting previously unselected package docker-scan-plugin. +Preparing to unpack .../5-docker-scan-plugin_0.8.0~ubuntu-focal_amd64.deb ... +Unpacking docker-scan-plugin (0.8.0~ubuntu-focal) ... +Selecting previously unselected package slirp4netns. +Preparing to unpack .../6-slirp4netns_0.4.3-1_amd64.deb ... +Unpacking slirp4netns (0.4.3-1) ... +Setting up slirp4netns (0.4.3-1) ... +Setting up docker-scan-plugin (0.8.0~ubuntu-focal) ... +Setting up containerd.io (1.4.9-1) ... +Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service. +Setting up docker-ce-cli (5:20.10.8~3-0~ubuntu-focal) ... +Setting up pigz (2.4-1) ... +Setting up docker-ce-rootless-extras (5:20.10.8~3-0~ubuntu-focal) ... +Setting up docker-ce (5:20.10.8~3-0~ubuntu-focal) ... +Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service. +Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket. +Processing triggers for man-db (2.9.1-1) ... +Processing triggers for systemd (245.4-4ubuntu3.11) ... +Adding user to group 'docker' +... restarted Docker service +Client: Docker Engine - Community + Version: 20.10.8 + API version: 1.41 + Go version: go1.16.6 + Git commit: 3967b7d + Built: Fri Jul 30 19:54:27 2021 + OS/Arch: linux/amd64 + Context: default + Experimental: true + +Server: Docker Engine - Community + Engine: + Version: 20.10.8 + API version: 1.41 (minimum version 1.12) + Go version: go1.16.6 + Git commit: 75249d8 + Built: Fri Jul 30 19:52:33 2021 + OS/Arch: linux/amd64 + Experimental: false + containerd: + Version: 1.4.9 + GitCommit: e25210fe30a0a703442421b0f60afac609f950a3 + runc: + Version: 1.0.1 + GitCommit: v1.0.1-0-g4144b63 + docker-init: + Version: 0.19.0 + GitCommit: de40ad0 +... Docker CE installation done +Creating folders for installation +Hit:1 https://download.docker.com/linux/ubuntu focal InRelease +Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:6 http://security.ubuntu.com/ubuntu focal-security InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +apt-transport-https is already the newest version (2.0.6). +0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded. +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 https://download.docker.com/linux/ubuntu focal InRelease +Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:7 http://security.ubuntu.com/ubuntu focal-security InRelease +Get:6 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [9383 B] +Get:8 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 Packages [49.4 kB] +Fetched 58.8 kB in 1s (55.8 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 https://download.docker.com/linux/ubuntu focal InRelease +Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease +Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:7 http://security.ubuntu.com/ubuntu focal-security InRelease +Get:6 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [9383 B] +Fetched 9383 B in 1s (10.7 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Installing Kubernetes Packages ... +Reading package lists... +Building dependency tree... +Reading state information... +The following additional packages will be installed: + conntrack cri-tools ebtables kubernetes-cni socat +Suggested packages: + nftables +The following NEW packages will be installed: + conntrack cri-tools ebtables kubeadm kubectl kubelet kubernetes-cni socat +0 upgraded, 8 newly installed, 0 to remove and 5 not upgraded. +Need to get 71.5 MB of archives. +After this operation, 303 MB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 conntrack amd64 1:1.4.5-2 [30.3 kB] +Get:2 http://archive.ubuntu.com/ubuntu focal/main amd64 ebtables amd64 2.0.11-3build1 [80.3 kB] +Get:3 http://archive.ubuntu.com/ubuntu focal/main amd64 socat amd64 1.7.3.3-2 [323 kB] +Get:4 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 cri-tools amd64 1.13.0-01 [8775 kB] +Get:5 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubernetes-cni amd64 0.8.7-00 [25.0 MB] +Get:6 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubelet amd64 1.15.0-00 [20.2 MB] +Get:7 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubectl amd64 1.15.0-00 [8763 kB] +Get:8 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubeadm amd64 1.15.0-00 [8246 kB] +Fetched 71.5 MB in 2s (32.8 MB/s) + Selecting previously unselected package conntrack. +(Reading database ... 65073 files and directories currently installed.) +Preparing to unpack .../0-conntrack_1%3a1.4.5-2_amd64.deb ... +Unpacking conntrack (1:1.4.5-2) ... +Selecting previously unselected package cri-tools. +Preparing to unpack .../1-cri-tools_1.13.0-01_amd64.deb ... +Unpacking cri-tools (1.13.0-01) ... +Selecting previously unselected package ebtables. +Preparing to unpack .../2-ebtables_2.0.11-3build1_amd64.deb ... +Unpacking ebtables (2.0.11-3build1) ... +Selecting previously unselected package kubernetes-cni. +Preparing to unpack .../3-kubernetes-cni_0.8.7-00_amd64.deb ... +Unpacking kubernetes-cni (0.8.7-00) ... +Selecting previously unselected package socat. +Preparing to unpack .../4-socat_1.7.3.3-2_amd64.deb ... +Unpacking socat (1.7.3.3-2) ... +Selecting previously unselected package kubelet. +Preparing to unpack .../5-kubelet_1.15.0-00_amd64.deb ... +Unpacking kubelet (1.15.0-00) ... +Selecting previously unselected package kubectl. +Preparing to unpack .../6-kubectl_1.15.0-00_amd64.deb ... +Unpacking kubectl (1.15.0-00) ... +Selecting previously unselected package kubeadm. +Preparing to unpack .../7-kubeadm_1.15.0-00_amd64.deb ... +Unpacking kubeadm (1.15.0-00) ... +Setting up conntrack (1:1.4.5-2) ... +Setting up kubectl (1.15.0-00) ... +Setting up ebtables (2.0.11-3build1) ... +Setting up socat (1.7.3.3-2) ... +Setting up cri-tools (1.13.0-01) ... +Setting up kubernetes-cni (0.8.7-00) ... +Setting up kubelet (1.15.0-00) ... +Created symlink /etc/systemd/system/multi-user.target.wants/kubelet.service → /lib/systemd/system/kubelet.service. +Setting up kubeadm (1.15.0-00) ... +Processing triggers for man-db (2.9.1-1) ... +kubelet set on hold. +kubeadm set on hold. +kubectl set on hold. +I0903 20:22:12.541425 9240 version.go:248] remote version is much newer: v1.22.1; falling back to: stable-1.15 +[init] Using Kubernetes version: v1.15.12 +[preflight] Running pre-flight checks + [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/ + [WARNING SystemVerification]: this Docker version is not on the list of validated versions: 20.10.8. Latest validated version: 18.09 +[preflight] Pulling images required for setting up a Kubernetes cluster +[preflight] This might take a minute or two, depending on the speed of your internet connection +[preflight] You can also perform this action in beforehand using 'kubeadm config images pull' +[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env" +[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml" +[kubelet-start] Activating the kubelet service +[certs] Using certificateDir folder "/etc/kubernetes/pki" +[certs] Generating "front-proxy-ca" certificate and key +[certs] Generating "front-proxy-client" certificate and key +[certs] Generating "etcd/ca" certificate and key +[certs] Generating "etcd/server" certificate and key +[certs] etcd/server serving cert is signed for DNS names [osm localhost] and IPs [192.168.64.19 127.0.0.1 ::1] +[certs] Generating "etcd/healthcheck-client" certificate and key +[certs] Generating "apiserver-etcd-client" certificate and key +[certs] Generating "etcd/peer" certificate and key +[certs] etcd/peer serving cert is signed for DNS names [osm localhost] and IPs [192.168.64.19 127.0.0.1 ::1] +[certs] Generating "ca" certificate and key +[certs] Generating "apiserver-kubelet-client" certificate and key +[certs] Generating "apiserver" certificate and key +[certs] apiserver serving cert is signed for DNS names [osm kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 192.168.64.19] +[certs] Generating "sa" key and public key +[kubeconfig] Using kubeconfig folder "/etc/kubernetes" +[kubeconfig] Writing "admin.conf" kubeconfig file +[kubeconfig] Writing "kubelet.conf" kubeconfig file +[kubeconfig] Writing "controller-manager.conf" kubeconfig file +[kubeconfig] Writing "scheduler.conf" kubeconfig file +[control-plane] Using manifest folder "/etc/kubernetes/manifests" +[control-plane] Creating static Pod manifest for "kube-apiserver" +[control-plane] Creating static Pod manifest for "kube-controller-manager" +[control-plane] Creating static Pod manifest for "kube-scheduler" +[etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests" +[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s +[apiclient] All control plane components are healthy after 26.006114 seconds +[upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace +[kubelet] Creating a ConfigMap "kubelet-config-1.15" in namespace kube-system with the configuration for the kubelets in the cluster +[upload-certs] Skipping phase. Please see --upload-certs +[mark-control-plane] Marking the node osm as control-plane by adding the label "node-role.kubernetes.io/master=''" +[mark-control-plane] Marking the node osm as control-plane by adding the taints [node-role.kubernetes.io/master:NoSchedule] +[bootstrap-token] Using token: 4tmh7l.ishe157blg1ilg1q +[bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles +[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials +[bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token +[bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster +[bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace +[addons] Applied essential addon: CoreDNS +[addons] Applied essential addon: kube-proxy + +Your Kubernetes control-plane has initialized successfully! + +To start using your cluster, you need to run the following as a regular user: + + mkdir -p $HOME/.kube + sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config + +You should now deploy a pod network to the cluster. +Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: + https://kubernetes.io/docs/concepts/cluster-administration/addons/ + +Then you can join any number of worker nodes by running the following on each as root: + +kubeadm join 192.168.64.19:6443 --token 4tmh7l.ishe157blg1ilg1q \ + --discovery-token-ca-cert-hash sha256:3bf3f4d5d3483c4a9eb1d0281caf1d9353b515b163b2c38afaa046294a24b01b +Error from server (NotFound): namespaces "osm" not found +podsecuritypolicy.policy/psp.flannel.unprivileged created +clusterrole.rbac.authorization.k8s.io/flannel created +clusterrolebinding.rbac.authorization.k8s.io/flannel created +serviceaccount/flannel created +configmap/kube-flannel-cfg created +daemonset.apps/kube-flannel-ds created +node/osm untainted +error: error reading [/tmp/openebs.CeXhWG]: recognized file extensions are [.json .yaml .yml] +Waiting for storageclass + +### Fri Sep 3 20:30:21 CEST 2021 install_k8s_storageclass: FATAL error: Storageclass not ready after 400 seconds. Cannot install openebs +BACKTRACE: +### FATAL /usr/share/osm-devops/common/logging 39 +### install_k8s_storageclass /usr/share/osm-devops/installers/full_install_osm.sh 848 +### install_lightweight /usr/share/osm-devops/installers/full_install_osm.sh 1211 +### main /usr/share/osm-devops/installers/full_install_osm.sh 1876 +------- +ubuntu@osm:~$ exit +exit +mactel:source-watcher andrea$ multipass stop osm +mactel:source-watcher andrea$ multipass delete osm +mactel:source-watcher andrea$ multipass purge +mactel:source-watcher andrea$ multipass purge +mactel:source-watcher andrea$ + +``` \ No newline at end of file diff --git a/_tmp/osm-install-issues/vbox-install.md b/_tmp/osm-install-issues/vbox-install.md new file mode 100644 index 0000000..5975e55 --- /dev/null +++ b/_tmp/osm-install-issues/vbox-install.md @@ -0,0 +1,180 @@ +```bash + +Last login: Thu Sep 2 12:45:53 on ttys005 +mactel:source-watcher andrea$ brew cask uninstall virtualbox +Error: Unknown command: cask +mactel:source-watcher andrea$ brew cask --help +Error: Unknown command: cask +mactel:source-watcher andrea$ brew --help +Example usage: + brew search [TEXT|/REGEX/] + brew info [FORMULA...] + brew install FORMULA... + brew update + brew upgrade [FORMULA...] + brew uninstall FORMULA... + brew list [FORMULA...] + +Troubleshooting: + brew config + brew doctor + brew install --verbose --debug FORMULA + +Contributing: + brew create [URL [--no-fetch]] + brew edit [FORMULA...] + +Further help: + brew commands + brew help [COMMAND] + man brew + https://docs.brew.sh +mactel:source-watcher andrea$ brew cask +Error: Unknown command: cask +mactel:source-watcher andrea$ brew uninstall virtualbox +==> Uninstalling Cask virtualbox +==> Running uninstall script VirtualBox_Uninstall.tool +Password: + +Welcome to the VirtualBox uninstaller script. + +Executing: /usr/bin/kmutil showloaded --list-only --bundle-identifier org.virtualbox.kext.VBoxUSB +No variant specified, falling back to release +Executing: /usr/bin/kmutil showloaded --list-only --bundle-identifier org.virtualbox.kext.VBoxNetFlt +No variant specified, falling back to release +Executing: /usr/bin/kmutil showloaded --list-only --bundle-identifier org.virtualbox.kext.VBoxNetAdp +No variant specified, falling back to release +Executing: /usr/bin/kmutil showloaded --list-only --bundle-identifier org.virtualbox.kext.VBoxDrv +No variant specified, falling back to release +The following files and directories (bundles) will be removed: + /Users/andrea/Library/LaunchAgents/org.virtualbox.vboxwebsrv.plist + /usr/local/bin/VirtualBox + /usr/local/bin/VBoxManage + /usr/local/bin/VBoxVRDP + /usr/local/bin/VBoxHeadless + /usr/local/bin/vboxwebsrv + /usr/local/bin/VBoxBugReport + /usr/local/bin/VBoxBalloonCtrl + /usr/local/bin/VBoxAutostart + /usr/local/bin/VBoxDTrace + /usr/local/bin/vbox-img + /Library/LaunchDaemons/org.virtualbox.startup.plist + /Library/Python/2.7/site-packages/vboxapi/VirtualBox_constants.py + /Library/Python/2.7/site-packages/vboxapi/VirtualBox_constants.pyc + /Library/Python/2.7/site-packages/vboxapi/__init__.py + /Library/Python/2.7/site-packages/vboxapi/__init__.pyc + /Library/Python/2.7/site-packages/vboxapi-1.0-py2.7.egg-info + /Library/Application Support/VirtualBox/LaunchDaemons/ + /Library/Application Support/VirtualBox/VBoxDrv.kext/ + /Library/Application Support/VirtualBox/VBoxUSB.kext/ + /Library/Application Support/VirtualBox/VBoxNetFlt.kext/ + /Library/Application Support/VirtualBox/VBoxNetAdp.kext/ + /Applications/VirtualBox.app/ + /Library/Python/2.7/site-packages/vboxapi/ + +And the traces of following packages will be removed: + org.virtualbox.pkg.vboxkexts + org.virtualbox.pkg.virtualbox + org.virtualbox.pkg.virtualboxcli + +The uninstallation processes requires administrative privileges +because some of the installed files cannot be removed by a normal +user. You may be prompted for your password now... + +Successfully unloaded VirtualBox kernel extensions. +Forgot package 'org.virtualbox.pkg.vboxkexts' on '/'. +Forgot package 'org.virtualbox.pkg.virtualbox' on '/'. +Forgot package 'org.virtualbox.pkg.virtualboxcli' on '/'. +Done. +==> Uninstalling packages: +==> Purging files for version 6.0.0,127566 of Cask virtualbox +mactel:source-watcher andrea$ brew install virtualbox +Error: + homebrew-core is a shallow clone. + homebrew-cask is a shallow clone. +To `brew update`, first run: + git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow + git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow +These commands may take a few minutes to run due to the large size of the repositories. +This restriction has been made on GitHub's request because updating shallow +clones is an extremely expensive operation due to the tree layout and traffic of +Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you +automatically to avoid repeatedly performing an expensive unshallow operation in +CI systems (which should instead be fixed to not use shallow clones). Sorry for +the inconvenience! +==> Caveats +virtualbox requires a kernel extension to work. +If the installation fails, retry after you enable it in: + System Preferences → Security & Privacy → General + +For more information, refer to vendor documentation or this Apple Technical Note: + https://developer.apple.com/library/content/technotes/tn2459/_index.html + +==> Downloading https://download.virtualbox.org/virtualbox/6.1.18/VirtualBox-6.1.18-142142-OSX.dmg +######################################################################## 100.0% +==> Installing Cask virtualbox +==> Running installer for virtualbox; your password may be necessary. +Package installers may write to any location; options such as `--appdir` are ignored. +installer: Package name is Oracle VM VirtualBox +installer: choices changes file '/var/folders/tt/prkpxkn1001cg362nwffx4kc0000gn/T/choices20210902-67677-lnqbru.xml' applied +installer: Upgrading at base path / +installer: The upgrade was successful. +==> Changing ownership of paths required by virtualbox; your password may be necessary. +🍺 virtualbox was successfully installed! +mactel:source-watcher andrea$ + [Restored 2 Sep 2021 at 19:32:53] +Last login: Thu Sep 2 19:32:53 on ttys008 +mactel:source-watcher andrea$ brew install virtualbox virtualbox-extension-pack +Error: + homebrew-core is a shallow clone. + homebrew-cask is a shallow clone. +To `brew update`, first run: + git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow + git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow +These commands may take a few minutes to run due to the large size of the repositories. +This restriction has been made on GitHub's request because updating shallow +clones is an extremely expensive operation due to the tree layout and traffic of +Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you +automatically to avoid repeatedly performing an expensive unshallow operation in +CI systems (which should instead be fixed to not use shallow clones). Sorry for +the inconvenience! +Warning: Cask 'virtualbox' is already installed. + +To re-install virtualbox, run: + brew reinstall virtualbox +Warning: Cask 'virtualbox-extension-pack' is already installed. + +To re-install virtualbox-extension-pack, run: + brew reinstall virtualbox-extension-pack +mactel:source-watcher andrea$ brew uninstall virtualbox-extension-pack +==> Uninstalling Cask virtualbox-extension-pack +Password: +0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% +==> Purging files for version 6.0.0 of Cask virtualbox-extension-pack +mactel:source-watcher andrea$ brew install virtualbox-extension-pack +Error: + homebrew-core is a shallow clone. + homebrew-cask is a shallow clone. +To `brew update`, first run: + git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow + git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow +These commands may take a few minutes to run due to the large size of the repositories. +This restriction has been made on GitHub's request because updating shallow +clones is an extremely expensive operation due to the tree layout and traffic of +Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you +automatically to avoid repeatedly performing an expensive unshallow operation in +CI systems (which should instead be fixed to not use shallow clones). Sorry for +the inconvenience! +==> Caveats +Installing virtualbox-extension-pack means you have AGREED to the license at: + https://www.virtualbox.org/wiki/VirtualBox_PUEL + +==> Downloading https://download.virtualbox.org/virtualbox/6.1.18/Oracle_VM_VirtualBox_Extension_Pack-6.1.18.vbox-extpack +######################################################################## 100.0% +All formula dependencies satisfied. +==> Installing Cask virtualbox-extension-pack +0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% +🍺 virtualbox-extension-pack was successfully installed! +mactel:source-watcher andrea$ + +``` \ No newline at end of file diff --git a/_tmp/osm-install-issues/vbox.osm10-ubuntu18.md b/_tmp/osm-install-issues/vbox.osm10-ubuntu18.md new file mode 100644 index 0000000..5e835a9 --- /dev/null +++ b/_tmp/osm-install-issues/vbox.osm10-ubuntu18.md @@ -0,0 +1,6 @@ +See terminal tabs output in VBox snapshot: "failed osm install" + +Also keep in mind when doing this from scratch again: update apt and get +PGP keys for repos---do it for every key ID shown in error messages. +See also: +- https://stackoverflow.com/questions/49877401/apt-get-update-error-related-with-kubeadm diff --git a/_tmp/osm-install/email.full_install_osm.sh b/_tmp/osm-install/email.full_install_osm.sh new file mode 100644 index 0000000..03b2c57 --- /dev/null +++ b/_tmp/osm-install/email.full_install_osm.sh @@ -0,0 +1,1870 @@ +#!/bin/bash +# Copyright 2016 Telefónica Investigación y Desarrollo S.A.U. +# +# 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. + +function usage(){ + echo -e "usage: $0 [OPTIONS]" + echo -e "Install OSM from binaries or source code (by default, from binaries)" + echo -e " OPTIONS" + echo -e " -h / --help: print this help" + echo -e " -y: do not prompt for confirmation, assumes yes" + echo -e " -r : use specified repository name for osm packages" + echo -e " -R : use specified release for osm binaries (deb packages, lxd images, ...)" + echo -e " -u : use specified repository url for osm packages" + echo -e " -k : use specified repository public key url" + echo -e " -b : install OSM from source code using a specific branch (master, v2.0, ...) or tag" + echo -e " -b master (main dev branch)" + echo -e " -b v2.0 (v2.0 branch)" + echo -e " -b tags/v1.1.0 (a specific tag)" + echo -e " ..." + echo -e " -c deploy osm services using container . Valid values are or . If -c is not used then osm will be deployed using default orchestrator. When used with --uninstall, osm services deployed by the orchestrator will be uninstalled" + echo -e " -s or user defined stack name when installed using swarm or namespace when installed using k8s, default is osm" + echo -e " -H use specific juju host controller IP" + echo -e " -S use VCA/juju secret key" + echo -e " -P use VCA/juju public key file" + echo -e " -C use VCA/juju CA certificate file" + echo -e " -A use VCA/juju API proxy" + echo -e " --vimemu: additionally deploy the VIM emulator as a docker container" + echo -e " --elk_stack: additionally deploy an ELK docker stack for event logging" + echo -e " --pla: install the PLA module for placement support" + echo -e " -m : install OSM but only rebuild or pull the specified docker images (NG-UI, NBI, LCM, RO, MON, POL, PLA, KAFKA, MONGO, PROMETHEUS, PROMETHEUS-CADVISOR, KEYSTONE-DB, NONE)" + echo -e " -o : ONLY (un)installs one of the addons (vimemu, elk_stack, k8s_monitor)" + echo -e " -O : Install OSM to an OpenStack infrastructure. is required. If a is used, the clouds.yaml file should be under ~/.config/openstack/ or /etc/openstack/" + echo -e " -N : Public network name required to setup OSM to OpenStack" + echo -e " -f : Public SSH key to use to deploy OSM to OpenStack" + echo -e " -F : Cloud-Init userdata file to deploy OSM to OpenStack" + echo -e " -D use local devops installation path" + echo -e " -w Location to store runtime installation" + echo -e " -t specify osm docker tag (default is latest)" + echo -e " -l: LXD cloud yaml file" + echo -e " -L: LXD credentials yaml file" + echo -e " -K: Specifies the name of the controller to use - The controller must be already bootstrapped" + echo -e " -d use docker registry URL instead of dockerhub" + echo -e " -p set docker proxy URL as part of docker CE configuration" + echo -e " -T specify docker tag for the modules specified with option -m" + echo -e " --nocachelxdimages: do not cache local lxd images, do not create cronjob for that cache (will save installation time, might affect instantiation time)" + echo -e " --nolxd: do not install and configure LXD, allowing unattended installations (assumes LXD is already installed and confifured)" + echo -e " --nodocker: do not install docker, do not initialize a swarm (assumes docker is already installed and a swarm has been initialized)" + echo -e " --nojuju: do not juju, assumes already installed" + echo -e " --nodockerbuild:do not build docker images (use existing locally cached images)" + echo -e " --nohostports: do not expose docker ports to host (useful for creating multiple instances of osm on the same host)" + echo -e " --nohostclient: do not install the osmclient" + echo -e " --uninstall: uninstall OSM: remove the containers and delete NAT rules" + echo -e " --source: install OSM from source code using the latest stable tag" + echo -e " --develop: (deprecated, use '-b master') install OSM from source code using the master branch" + echo -e " --pullimages: pull/run osm images from docker.io/opensourcemano" + echo -e " --k8s_monitor: install the OSM kubernetes monitoring with prometheus and grafana" + echo -e " --volume: create a VM volume when installing to OpenStack" +# echo -e " --reconfigure: reconfigure the modules (DO NOT change NAT rules)" +# echo -e " --update: update to the latest stable release or to the latest commit if using a specific branch" + echo -e " --showopts: print chosen options and exit (only for debugging)" + echo -e " --charmed: Deploy and operate OSM with Charms on k8s" + echo -e " [--bundle ]: Specify with which bundle to deploy OSM with charms (--charmed option)" + echo -e " [--k8s ]: Specify with which kubernetes to deploy OSM with charms (--charmed option)" + echo -e " [--vca ]: Specifies the name of the controller to use - The controller must be already bootstrapped (--charmed option)" + echo -e " [--lxd ]: Takes a YAML file as a parameter with the LXD Cloud information (--charmed option)" + echo -e " [--lxd-cred ]: Takes a YAML file as a parameter with the LXD Credentials information (--charmed option)" + echo -e " [--microstack]: Installs microstack as a vim. (--charmed option)" + echo -e " [--overlay]: Add an overlay to override some defaults of the default bundle (--charmed option)" + echo -e " [--ha]: Installs High Availability bundle. (--charmed option)" + echo -e " [--tag]: Docker image tag. (--charmed option)" + echo -e " [--registry]: Docker registry with optional credentials as user:pass@hostname:port (--charmed option)" + +} + +# takes a juju/accounts.yaml file and returns the password specific +# for a controller. I wrote this using only bash tools to minimize +# additions of other packages +function parse_juju_password { + password_file="${HOME}/.local/share/juju/accounts.yaml" + local controller_name=$1 + local s='[[:space:]]*' w='[a-zA-Z0-9_-]*' fs=$(echo @|tr @ '\034') + sed -ne "s|^\($s\):|\1|" \ + -e "s|^\($s\)\($w\)$s:$s[\"']\(.*\)[\"']$s\$|\1$fs\2$fs\3|p" \ + -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" $password_file | + awk -F$fs -v controller=$controller_name '{ + indent = length($1)/2; + vname[indent] = $2; + for (i in vname) {if (i > indent) {delete vname[i]}} + if (length($3) > 0) { + vn=""; for (i=0; i/dev/null; then + echo -e " Not installed.\nInstalling iptables-persistent requires root privileges" + echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections + echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections + sudo apt-get -yq install iptables-persistent + fi +} + +#Configure NAT rules, based on the current IP addresses of containers +function nat(){ + check_install_iptables_persistent + + echo -e "\nConfiguring NAT rules" + echo -e " Required root privileges" + sudo $OSM_DEVOPS/installers/nat_osm +} + +function FATAL(){ + echo "FATAL error: Cannot install OSM due to \"$1\"" + exit 1 +} + +function update_juju_images(){ + crontab -l | grep update-juju-lxc-images || (crontab -l 2>/dev/null; echo "0 4 * * 6 $USER ${OSM_DEVOPS}/installers/update-juju-lxc-images --xenial --bionic") | crontab - + ${OSM_DEVOPS}/installers/update-juju-lxc-images --xenial --bionic +} + +function install_lxd() { + # Apply sysctl production values for optimal performance + sudo cp ${OSM_DEVOPS}/installers/60-lxd-production.conf /etc/sysctl.d/60-lxd-production.conf + sudo sysctl --system + + # Install LXD snap + sudo apt-get remove --purge -y liblxc1 lxc-common lxcfs lxd lxd-client + sudo snap install lxd + + # Configure LXD + sudo usermod -a -G lxd `whoami` + cat ${OSM_DEVOPS}/installers/lxd-preseed.conf | sed 's/^config: {}/config:\n core.https_address: '$DEFAULT_IP':8443/' | sg lxd -c "lxd init --preseed" + sg lxd -c "lxd waitready" + DEFAULT_INTERFACE=$(ip route list|awk '$1=="default" {print $5; exit}') + [ -z "$DEFAULT_INTERFACE" ] && DEFAULT_INTERFACE=$(route -n |awk '$1~/^0.0.0.0/ {print $8; exit}') + DEFAULT_MTU=$(ip addr show $DEFAULT_INTERFACE | perl -ne 'if (/mtu\s(\d+)/) {print $1;}') + sg lxd -c "lxc profile device set default eth0 mtu $DEFAULT_MTU" + sg lxd -c "lxc network set lxdbr0 bridge.mtu $DEFAULT_MTU" + #sudo systemctl stop lxd-bridge + #sudo systemctl --system daemon-reload + #sudo systemctl enable lxd-bridge + #sudo systemctl start lxd-bridge +} + +function ask_user(){ + # ask to the user and parse a response among 'y', 'yes', 'n' or 'no'. Case insensitive + # Params: $1 text to ask; $2 Action by default, can be 'y' for yes, 'n' for no, other or empty for not allowed + # Return: true(0) if user type 'yes'; false (1) if user type 'no' + read -e -p "$1" USER_CONFIRMATION + while true ; do + [ -z "$USER_CONFIRMATION" ] && [ "$2" == 'y' ] && return 0 + [ -z "$USER_CONFIRMATION" ] && [ "$2" == 'n' ] && return 1 + [ "${USER_CONFIRMATION,,}" == "yes" ] || [ "${USER_CONFIRMATION,,}" == "y" ] && return 0 + [ "${USER_CONFIRMATION,,}" == "no" ] || [ "${USER_CONFIRMATION,,}" == "n" ] && return 1 + read -e -p "Please type 'yes' or 'no': " USER_CONFIRMATION + done +} + +function install_osmclient(){ + CLIENT_RELEASE=${RELEASE#"-R "} + CLIENT_REPOSITORY_KEY="OSM%20ETSI%20Release%20Key.gpg" + CLIENT_REPOSITORY=${REPOSITORY#"-r "} + CLIENT_REPOSITORY_BASE=${REPOSITORY_BASE#"-u "} + key_location=$CLIENT_REPOSITORY_BASE/$CLIENT_RELEASE/$CLIENT_REPOSITORY_KEY + curl $key_location | sudo apt-key add - + sudo add-apt-repository -y "deb [arch=amd64] $CLIENT_REPOSITORY_BASE/$CLIENT_RELEASE $CLIENT_REPOSITORY osmclient IM" + sudo apt-get update + sudo apt-get install -y python3-pip + sudo -H LC_ALL=C python3 -m pip install -U pip + sudo -H LC_ALL=C python3 -m pip install -U python-magic pyangbind verboselogs + sudo apt-get install -y python3-osm-im python3-osmclient + if [ -f /usr/lib/python3/dist-packages/osm_im/requirements.txt ]; then + python3 -m pip install -r /usr/lib/python3/dist-packages/osm_im/requirements.txt + fi + if [ -f /usr/lib/python3/dist-packages/osmclient/requirements.txt ]; then + sudo apt-get install -y libcurl4-openssl-dev libssl-dev + python3 -m pip install -r /usr/lib/python3/dist-packages/osmclient/requirements.txt + fi + #sed 's,OSM_SOL005=[^$]*,OSM_SOL005=True,' -i ${HOME}/.bashrc + #echo 'export OSM_HOSTNAME=localhost' >> ${HOME}/.bashrc + #echo 'export OSM_SOL005=True' >> ${HOME}/.bashrc + [ -z "$INSTALL_LIGHTWEIGHT" ] && export OSM_HOSTNAME=`lxc list | awk '($2=="SO-ub"){print $6}'` + [ -z "$INSTALL_LIGHTWEIGHT" ] && export OSM_RO_HOSTNAME=`lxc list | awk '($2=="RO"){print $6}'` + echo -e "\nOSM client installed" + if [ -z "$INSTALL_LIGHTWEIGHT" ]; then + echo -e "You might be interested in adding the following OSM client env variables to your .bashrc file:" + echo " export OSM_HOSTNAME=${OSM_HOSTNAME}" + echo " export OSM_RO_HOSTNAME=${OSM_RO_HOSTNAME}" + else + echo -e "OSM client assumes that OSM host is running in localhost (127.0.0.1)." + echo -e "In case you want to interact with a different OSM host, you will have to configure this env variable in your .bashrc file:" + echo " export OSM_HOSTNAME=" + fi + return 0 +} + +function install_prometheus_nodeexporter(){ + if (systemctl -q is-active node_exporter) + then + echo "Node Exporter is already running." + else + echo "Node Exporter is not active, installing..." + if getent passwd node_exporter > /dev/null 2>&1; then + echo "node_exporter user exists" + else + echo "Creating user node_exporter" + sudo useradd --no-create-home --shell /bin/false node_exporter + fi + wget -q https://github.com/prometheus/node_exporter/releases/download/v$PROMETHEUS_NODE_EXPORTER_TAG/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64.tar.gz -P /tmp/ + sudo tar -C /tmp -xf /tmp/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64.tar.gz + sudo cp /tmp/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64/node_exporter /usr/local/bin + sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter + sudo rm -rf /tmp/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64* + sudo cp ${OSM_DEVOPS}/installers/docker/prometheus_exporters/node_exporter.service /etc/systemd/system/node_exporter.service + sudo systemctl daemon-reload + sudo systemctl restart node_exporter + sudo systemctl enable node_exporter + echo "Node Exporter has been activated in this host." + fi + return 0 +} + +function uninstall_prometheus_nodeexporter(){ + sudo systemctl stop node_exporter + sudo systemctl disable node_exporter + sudo rm /etc/systemd/system/node_exporter.service + sudo systemctl daemon-reload + sudo userdel node_exporter + sudo rm /usr/local/bin/node_exporter + return 0 +} + +function install_docker_ce() { + # installs and configures Docker CE + echo "Installing Docker CE ..." + sudo apt-get -qq update + sudo apt-get install -y apt-transport-https ca-certificates software-properties-common + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - + sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" + sudo apt-get -qq update + sudo apt-get install -y docker-ce + echo "Adding user to group 'docker'" + sudo groupadd -f docker + sudo usermod -aG docker $USER + sleep 2 + sudo service docker restart + echo "... restarted Docker service" + if [ -n "${DOCKER_PROXY_URL}" ]; then + echo "Configuring docker proxy ..." + if [ -f /etc/docker/daemon.json ]; then + if grep -q registry-mirrors /etc/docker/daemon.json; then + sudo sed -i "s|registry-mirrors.*|registry-mirrors\": [\"${DOCKER_PROXY_URL}\"] |" /etc/docker/daemon.json + else + sudo sed -i "s|{|{\n \"registry-mirrors\": [\"${DOCKER_PROXY_URL}\"],|" /etc/docker/daemon.json + fi + else + sudo bash -c "cat << EOF > /etc/docker/daemon.json +{ + \"registry-mirrors\": [\"${DOCKER_PROXY_URL}\"] +} +EOF" + fi + sudo systemctl daemon-reload + sudo service docker restart + echo "... restarted Docker service again" + fi + sg docker -c "docker version" || FATAL "Docker installation failed" + echo "... Docker CE installation done" + return 0 +} + +function install_docker_compose() { + # installs and configures docker-compose + echo "Installing Docker Compose ..." + sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose + sudo chmod +x /usr/local/bin/docker-compose + echo "... Docker Compose installation done" +} + +function install_juju() { + echo "Installing juju" + sudo snap install juju --classic --channel=$JUJU_VERSION/stable + [[ ":$PATH": != *":/snap/bin:"* ]] && PATH="/snap/bin:${PATH}" + [ -n "$INSTALL_NOCACHELXDIMAGES" ] || update_juju_images + echo "Finished installation of juju" + return 0 +} + +function juju_createcontroller() { + if ! juju show-controller $OSM_STACK_NAME &> /dev/null; then + # Not found created, create the controller + sudo usermod -a -G lxd ${USER} + sg lxd -c "juju bootstrap --bootstrap-series=xenial --agent-version=$JUJU_AGENT_VERSION $OSM_VCA_CLOUDNAME $OSM_STACK_NAME" + fi + [ $(juju controllers | awk "/^${OSM_STACK_NAME}[\*| ]/{print $1}"|wc -l) -eq 1 ] || FATAL "Juju installation failed" + juju controller-config features=[k8s-operators] +} + +function juju_addk8s() { + cat $HOME/.kube/config | juju add-k8s $OSM_VCA_K8S_CLOUDNAME --controller $OSM_STACK_NAME --storage openebs-hostpath +} + +function juju_createcontroller_k8s(){ + cat $HOME/.kube/config | juju add-k8s $OSM_VCA_K8S_CLOUDNAME --client + juju bootstrap $OSM_VCA_K8S_CLOUDNAME $OSM_STACK_NAME \ + --config controller-service-type=loadbalancer \ + --agent-version=$JUJU_AGENT_VERSION +} + + +function juju_addlxd_cloud(){ + mkdir -p /tmp/.osm + OSM_VCA_CLOUDNAME="lxd-cloud" + LXDENDPOINT=$DEFAULT_IP + LXD_CLOUD=/tmp/.osm/lxd-cloud.yaml + LXD_CREDENTIALS=/tmp/.osm/lxd-credentials.yaml + + cat << EOF > $LXD_CLOUD +clouds: + $OSM_VCA_CLOUDNAME: + type: lxd + auth-types: [certificate] + endpoint: "https://$LXDENDPOINT:8443" + config: + ssl-hostname-verification: false +EOF + openssl req -nodes -new -x509 -keyout /tmp/.osm/client.key -out /tmp/.osm/client.crt -days 365 -subj "/C=FR/ST=Nice/L=Nice/O=ETSI/OU=OSM/CN=osm.etsi.org" + local server_cert=`cat /var/snap/lxd/common/lxd/server.crt | sed 's/^/ /'` + local client_cert=`cat /tmp/.osm/client.crt | sed 's/^/ /'` + local client_key=`cat /tmp/.osm/client.key | sed 's/^/ /'` + + cat << EOF > $LXD_CREDENTIALS +credentials: + $OSM_VCA_CLOUDNAME: + lxd-cloud: + auth-type: certificate + server-cert: | +$server_cert + client-cert: | +$client_cert + client-key: | +$client_key +EOF + lxc config trust add local: /tmp/.osm/client.crt + juju add-cloud -c $OSM_STACK_NAME $OSM_VCA_CLOUDNAME $LXD_CLOUD --force + juju add-credential -c $OSM_STACK_NAME $OSM_VCA_CLOUDNAME -f $LXD_CREDENTIALS + sg lxd -c "lxd waitready" + juju controller-config features=[k8s-operators] +} + + +function juju_createproxy() { + check_install_iptables_persistent + + if ! sudo iptables -t nat -C PREROUTING -p tcp -m tcp -d $DEFAULT_IP --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST; then + sudo iptables -t nat -A PREROUTING -p tcp -m tcp -d $DEFAULT_IP --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST + sudo netfilter-persistent save + fi +} + +function docker_login() { + echo "Docker login" + sg docker -c "docker login -u ${DOCKER_REGISTRY_USER} -p ${DOCKER_REGISTRY_PASSWORD}" +} + +function generate_docker_images() { + echo "Pulling and generating docker images" + [ -n "${DOCKER_REGISTRY_URL}" ] && docker_login + + echo "Pulling docker images" + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q KAFKA ; then + sg docker -c "docker pull wurstmeister/zookeeper" || FATAL "cannot get zookeeper docker image" + sg docker -c "docker pull wurstmeister/kafka:${KAFKA_TAG}" || FATAL "cannot get kafka docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q MONGO ; then + sg docker -c "docker pull mongo" || FATAL "cannot get mongo docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q PROMETHEUS ; then + sg docker -c "docker pull prom/prometheus:${PROMETHEUS_TAG}" || FATAL "cannot get prometheus docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q PROMETHEUS-CADVISOR ; then + sg docker -c "docker pull google/cadvisor:${PROMETHEUS_CADVISOR_TAG}" || FATAL "cannot get prometheus cadvisor docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q GRAFANA ; then + sg docker -c "docker pull grafana/grafana:${GRAFANA_TAG}" || FATAL "cannot get grafana docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q NBI || echo $TO_REBUILD | grep -q KEYSTONE-DB ; then + sg docker -c "docker pull mariadb:${KEYSTONEDB_TAG}" || FATAL "cannot get keystone-db docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q RO ; then + sg docker -c "docker pull mysql:5" || FATAL "cannot get mysql docker image" + fi + + if [ -n "$PULL_IMAGES" ]; then + echo "Pulling OSM docker images" + for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA osmclient; do + module_lower=${module,,} + if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then + continue + fi + module_tag="${OSM_DOCKER_TAG}" + if [ -n "${MODULE_DOCKER_TAG}" ] && echo $TO_REBUILD | grep -q $module ; then + module_tag="${MODULE_DOCKER_TAG}" + fi + echo "Pulling ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag} docker image" + sg docker -c "docker pull ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag}" || FATAL "cannot pull $module docker image" + done + else + _build_from=$COMMIT_ID + [ -z "$_build_from" ] && _build_from="latest" + echo "OSM Docker images generated from $_build_from" + + for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA; do + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q ${module} ; then + module_lower=${module,,} + if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then + continue + fi + git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/$module + git -C ${LWTEMPDIR}/${module} checkout ${COMMIT_ID} + sg docker -c "docker build ${LWTEMPDIR}/${module} -f ${LWTEMPDIR}/${module}/docker/Dockerfile -t ${DOCKER_USER}/${module_lower} --no-cache" || FATAL "cannot build ${module} docker image" + fi + done + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q osmclient; then + BUILD_ARGS+=(--build-arg REPOSITORY="$REPOSITORY") + BUILD_ARGS+=(--build-arg RELEASE="$RELEASE") + BUILD_ARGS+=(--build-arg REPOSITORY_KEY="$REPOSITORY_KEY") + BUILD_ARGS+=(--build-arg REPOSITORY_BASE="$REPOSITORY_BASE") + sg docker -c "docker build -t ${DOCKER_USER}/osmclient ${BUILD_ARGS[@]} -f $OSM_DEVOPS/docker/osmclient ." + fi + echo "Finished generation of docker images" + fi + + echo "Finished pulling and generating docker images" +} + +function cmp_overwrite() { + file1="$1" + file2="$2" + if ! $(cmp "${file1}" "${file2}" >/dev/null 2>&1); then + if [ -f "${file2}" ]; then + ask_user "The file ${file2} already exists. Overwrite (y/N)? " n && cp -b ${file1} ${file2} + else + cp -b ${file1} ${file2} + fi + fi +} + +function generate_docker_compose_files() { + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/docker-compose.yaml $OSM_DOCKER_WORK_DIR/docker-compose.yaml + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/docker-compose-ngui.yaml $OSM_DOCKER_WORK_DIR/docker-compose-ui.yaml + if [ -n "$INSTALL_PLA" ]; then + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/osm_pla/docker-compose.yaml $OSM_DOCKER_WORK_DIR/osm_pla/docker-compose.yaml + fi +} + +function generate_k8s_manifest_files() { + #Kubernetes resources + $WORKDIR_SUDO cp -bR ${OSM_DEVOPS}/installers/docker/osm_pods $OSM_DOCKER_WORK_DIR + $WORKDIR_SUDO rm -f $OSM_K8S_WORK_DIR/mongo.yaml +} + +function generate_prometheus_grafana_files() { + [ -n "$KUBERNETES" ] && return + # Prometheus files + $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/prometheus + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/prometheus/prometheus.yml $OSM_DOCKER_WORK_DIR/prometheus/prometheus.yml + + # Grafana files + $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/grafana + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/dashboards-osm.yml $OSM_DOCKER_WORK_DIR/grafana/dashboards-osm.yml + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/datasource-prometheus.yml $OSM_DOCKER_WORK_DIR/grafana/datasource-prometheus.yml + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/osm-sample-dashboard.json $OSM_DOCKER_WORK_DIR/grafana/osm-sample-dashboard.json + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/osm-system-dashboard.json $OSM_DOCKER_WORK_DIR/grafana/osm-system-dashboard.json + + # Prometheus Exporters files + $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/prometheus_exporters + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/prometheus_exporters/node_exporter.service $OSM_DOCKER_WORK_DIR/prometheus_exporters/node_exporter.service +} + +function generate_docker_env_files() { + echo "Doing a backup of existing env files" + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/keystone-db.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/keystone.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/lcm.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/mon.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/nbi.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/pol.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/ro-db.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/ro.env{,~} + + echo "Generating docker env files" + # LCM + if [ ! -f $OSM_DOCKER_WORK_DIR/lcm.env ]; then + echo "OSMLCM_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_HOST" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_HOST=${OSM_VCA_HOST}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_HOST.*|OSMLCM_VCA_HOST=$OSM_VCA_HOST|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_SECRET" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_SECRET=${OSM_VCA_SECRET}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_SECRET.*|OSMLCM_VCA_SECRET=$OSM_VCA_SECRET|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_PUBKEY" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_PUBKEY=${OSM_VCA_PUBKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_PUBKEY.*|OSMLCM_VCA_PUBKEY=${OSM_VCA_PUBKEY}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_CACERT" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_CACERT=${OSM_VCA_CACERT}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_CACERT.*|OSMLCM_VCA_CACERT=${OSM_VCA_CACERT}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if [ -n "$OSM_VCA_APIPROXY" ]; then + if ! grep -Fq "OSMLCM_VCA_APIPROXY" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_APIPROXY.*|OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + fi + + if ! grep -Fq "OSMLCM_VCA_ENABLEOSUPGRADE" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "# OSMLCM_VCA_ENABLEOSUPGRADE=false" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_APTMIRROR" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "# OSMLCM_VCA_APTMIRROR=http://archive.ubuntu.com/ubuntu/" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_CLOUD" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_CLOUD=${OSM_VCA_CLOUDNAME}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_CLOUD.*|OSMLCM_VCA_CLOUD=${OSM_VCA_CLOUDNAME}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_K8S_CLOUD" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_K8S_CLOUD=${OSM_VCA_K8S_CLOUDNAME}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_K8S_CLOUD.*|OSMLCM_VCA_K8S_CLOUD=${OSM_VCA_K8S_CLOUDNAME}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + # RO + MYSQL_ROOT_PASSWORD=$(generate_secret) + if [ ! -f $OSM_DOCKER_WORK_DIR/ro-db.env ]; then + echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/ro-db.env + fi + if [ ! -f $OSM_DOCKER_WORK_DIR/ro.env ]; then + echo "RO_DB_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/ro.env + fi + if ! grep -Fq "OSMRO_DATABASE_COMMONKEY" $OSM_DOCKER_WORK_DIR/ro.env; then + echo "OSMRO_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/ro.env + fi + + # Keystone + KEYSTONE_DB_PASSWORD=$(generate_secret) + SERVICE_PASSWORD=$(generate_secret) + if [ ! -f $OSM_DOCKER_WORK_DIR/keystone-db.env ]; then + echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/keystone-db.env + fi + if [ ! -f $OSM_DOCKER_WORK_DIR/keystone.env ]; then + echo "ROOT_DB_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/keystone.env + echo "KEYSTONE_DB_PASSWORD=${KEYSTONE_DB_PASSWORD}" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/keystone.env + echo "SERVICE_PASSWORD=${SERVICE_PASSWORD}" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/keystone.env + fi + + # NBI + if [ ! -f $OSM_DOCKER_WORK_DIR/nbi.env ]; then + echo "OSMNBI_AUTHENTICATION_SERVICE_PASSWORD=${SERVICE_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/nbi.env + echo "OSMNBI_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/nbi.env + fi + + # MON + if [ ! -f $OSM_DOCKER_WORK_DIR/mon.env ]; then + echo "OSMMON_KEYSTONE_SERVICE_PASSWORD=${SERVICE_PASSWORD}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + echo "OSMMON_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + echo "OSMMON_SQL_DATABASE_URI=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/mon" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OS_NOTIFIER_URI" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OS_NOTIFIER_URI=http://${DEFAULT_IP}:8662" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OS_NOTIFIER_URI.*|OS_NOTIFIER_URI=http://$DEFAULT_IP:8662|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_HOST" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_HOST=${OSM_VCA_HOST}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_HOST.*|OSMMON_VCA_HOST=$OSM_VCA_HOST|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_SECRET" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_SECRET=${OSM_VCA_SECRET}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_SECRET.*|OSMMON_VCA_SECRET=$OSM_VCA_SECRET|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_CACERT" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_CACERT=${OSM_VCA_CACERT}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_CACERT.*|OSMMON_VCA_CACERT=${OSM_VCA_CACERT}|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + + # POL + if [ ! -f $OSM_DOCKER_WORK_DIR/pol.env ]; then + echo "OSMPOL_SQL_DATABASE_URI=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/pol" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/pol.env + fi + + echo "Finished generation of docker env files" +} + +function generate_osmclient_script () { + echo "docker run -ti --network net${OSM_STACK_NAME} ${DOCKER_REGISTRY_URL}${DOCKER_USER}/osmclient:${OSM_DOCKER_TAG}" | $WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/osm + $WORKDIR_SUDO chmod +x "$OSM_DOCKER_WORK_DIR/osm" + echo "osmclient sidecar container can be found at: $OSM_DOCKER_WORK_DIR/osm" +} + +#installs kubernetes packages +function install_kube() { + sudo apt-get update && sudo apt-get install -y apt-transport-https + curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - + sudo add-apt-repository "deb https://apt.kubernetes.io/ kubernetes-xenial main" + sudo apt-get update + echo "Installing Kubernetes Packages ..." + sudo apt-get install -y kubelet=1.15.0-00 kubeadm=1.15.0-00 kubectl=1.15.0-00 + sudo apt-mark hold kubelet kubeadm kubectl +} + +#initializes kubernetes control plane +function init_kubeadm() { + sudo swapoff -a + sudo sed -i.bak '/.*none.*swap/s/^\(.*\)$/#\1/g' /etc/fstab + sudo kubeadm init --config $1 + sleep 5 +} + +function kube_config_dir() { + [ ! -d $K8S_MANIFEST_DIR ] && FATAL "Cannot Install Kubernetes" + mkdir -p $HOME/.kube + sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config +} + +function install_k8s_storageclass() { + echo "Installing OpenEBS" + kubectl create ns openebs + helm repo add openebs https://openebs.github.io/charts + helm repo update + helm install --namespace openebs openebs openebs/openebs --version 1.12.0 + helm ls -n openebs + local storageclass_timeout=400 + local counter=0 + local storageclass_ready="" + echo "Waiting for storageclass" + while (( counter < storageclass_timeout )) + do + kubectl get storageclass openebs-hostpath &> /dev/null + + if [ $? -eq 0 ] ; then + echo "Storageclass available" + storageclass_ready="y" + break + else + counter=$((counter + 15)) + sleep 15 + fi + done + [ -n "$storageclass_ready" ] || FATAL "Storageclass not ready after $storageclass_timeout seconds. Cannot install openebs" + kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' +} + +function install_k8s_metallb() { + METALLB_IP_RANGE=$DEFAULT_IP-$DEFAULT_IP + cat ${OSM_DEVOPS}/installers/k8s/metallb/metallb.yaml | kubectl apply -f - + echo "apiVersion: v1 +kind: ConfigMap +metadata: + namespace: metallb-system + name: config +data: + config: | + address-pools: + - name: default + protocol: layer2 + addresses: + - $METALLB_IP_RANGE" | kubectl apply -f - +} +#deploys flannel as daemonsets +function deploy_cni_provider() { + CNI_DIR="$(mktemp -d -q --tmpdir "flannel.XXXXXX")" + trap 'rm -rf "${CNI_DIR}"' EXIT + wget -q https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml -P $CNI_DIR + kubectl apply -f $CNI_DIR + [ $? -ne 0 ] && FATAL "Cannot Install Flannel" +} + +#creates secrets from env files which will be used by containers +function kube_secrets(){ + kubectl create ns $OSM_STACK_NAME + kubectl create secret generic lcm-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/lcm.env + kubectl create secret generic mon-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/mon.env + kubectl create secret generic nbi-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/nbi.env + kubectl create secret generic ro-db-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/ro-db.env + kubectl create secret generic ro-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/ro.env + kubectl create secret generic keystone-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/keystone.env + kubectl create secret generic pol-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/pol.env +} + +#taints K8s master node +function taint_master_node() { + K8S_MASTER=$(kubectl get nodes | awk '$3~/master/'| awk '{print $1}') + kubectl taint node $K8S_MASTER node-role.kubernetes.io/master:NoSchedule- + sleep 5 +} + +#deploys osm pods and services +function deploy_osm_services() { + kubectl apply -n $OSM_STACK_NAME -f $OSM_K8S_WORK_DIR +} + +#deploy charmed services +function deploy_charmed_services() { + juju add-model $OSM_STACK_NAME $OSM_VCA_K8S_CLOUDNAME + juju deploy ch:mongodb-k8s -m $OSM_STACK_NAME +} + +function deploy_osm_pla_service() { + # corresponding to namespace_vol + $WORKDIR_SUDO sed -i "s#path: /var/lib/osm#path: $OSM_NAMESPACE_VOL#g" $OSM_DOCKER_WORK_DIR/osm_pla/pla.yaml + # corresponding to deploy_osm_services + kubectl apply -n $OSM_STACK_NAME -f $OSM_DOCKER_WORK_DIR/osm_pla +} + +#Install Helm v3 +function install_helm() { + helm > /dev/null 2>&1 + if [ $? != 0 ] ; then + # Helm is not installed. Install helm + echo "Helm is not installed, installing ..." + curl https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz --output helm-v3.6.3.tar.gz + tar -zxvf helm-v3.6.3.tar.gz + sudo mv linux-amd64/helm /usr/local/bin/helm + rm -r linux-amd64 + rm helm-v3.6.3.tar.gz + helm repo add stable https://charts.helm.sh/stable + helm repo update + fi +} + +function parse_yaml() { + TAG=$1 + shift + services=$@ + for module in $services; do + if [ "$module" == "pla" ]; then + if [ -n "$INSTALL_PLA" ]; then + echo "Updating K8s manifest file from opensourcemano\/${module}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${module}:${TAG}" + $WORKDIR_SUDO sed -i "s#opensourcemano/pla:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/pla:${TAG}#g" ${OSM_DOCKER_WORK_DIR}/osm_pla/pla.yaml + fi + else + echo "Updating K8s manifest file from opensourcemano\/${module}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${module}:${TAG}" + $WORKDIR_SUDO sed -i "s#opensourcemano/${module}:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module}:${TAG}#g" ${OSM_K8S_WORK_DIR}/${module}.yaml + fi + done +} + +function update_manifest_files() { + osm_services="nbi lcm ro pol mon ng-ui keystone pla" + list_of_services="" + for module in $osm_services; do + module_upper="${module^^}" + if ! echo $TO_REBUILD | grep -q $module_upper ; then + list_of_services="$list_of_services $module" + fi + done + if [ ! "$OSM_DOCKER_TAG" == "10" ]; then + parse_yaml $OSM_DOCKER_TAG $list_of_services + fi + if [ -n "$MODULE_DOCKER_TAG" ]; then + parse_yaml $MODULE_DOCKER_TAG $list_of_services_to_rebuild + fi +} + +function namespace_vol() { + osm_services="nbi lcm ro pol mon kafka mysql prometheus" + for osm in $osm_services; do + $WORKDIR_SUDO sed -i "s#path: /var/lib/osm#path: $OSM_NAMESPACE_VOL#g" $OSM_K8S_WORK_DIR/$osm.yaml + done +} + +function init_docker_swarm() { + if [ "${DEFAULT_MTU}" != "1500" ]; then + DOCKER_NETS=`sg docker -c "docker network list" | awk '{print $2}' | egrep -v "^ID$" | paste -d " " -s` + DOCKER_GW_NET=`sg docker -c "docker network inspect ${DOCKER_NETS}" | grep Subnet | awk -F\" '{print $4}' | egrep "^172" | sort -u | tail -1 | awk -F\. '{if ($2 != 255) print $1"."$2+1"."$3"."$4; else print "-1";}'` + sg docker -c "docker network create --subnet ${DOCKER_GW_NET} --opt com.docker.network.bridge.name=docker_gwbridge --opt com.docker.network.bridge.enable_icc=false --opt com.docker.network.bridge.enable_ip_masquerade=true --opt com.docker.network.driver.mtu=${DEFAULT_MTU} docker_gwbridge" + fi + sg docker -c "docker swarm init --advertise-addr ${DEFAULT_IP}" + return 0 +} + +function create_docker_network() { + echo "creating network" + sg docker -c "docker network create --driver=overlay --attachable --opt com.docker.network.driver.mtu=${DEFAULT_MTU} net${OSM_STACK_NAME}" + echo "creating network DONE" +} + +function deploy_lightweight() { + + echo "Deploying lightweight build" + OSM_NBI_PORT=9999 + OSM_RO_PORT=9090 + OSM_KEYSTONE_PORT=5000 + OSM_UI_PORT=80 + OSM_MON_PORT=8662 + OSM_PROM_PORT=9090 + OSM_PROM_CADVISOR_PORT=8080 + OSM_PROM_HOSTPORT=9091 + OSM_GRAFANA_PORT=3000 + [ -n "$INSTALL_ELK" ] && OSM_ELK_PORT=5601 + #[ -n "$INSTALL_PERFMON" ] && OSM_PM_PORT=3000 + + if [ -n "$NO_HOST_PORTS" ]; then + OSM_PORTS+=(OSM_NBI_PORTS=$OSM_NBI_PORT) + OSM_PORTS+=(OSM_RO_PORTS=$OSM_RO_PORT) + OSM_PORTS+=(OSM_KEYSTONE_PORTS=$OSM_KEYSTONE_PORT) + OSM_PORTS+=(OSM_UI_PORTS=$OSM_UI_PORT) + OSM_PORTS+=(OSM_MON_PORTS=$OSM_MON_PORT) + OSM_PORTS+=(OSM_PROM_PORTS=$OSM_PROM_PORT) + OSM_PORTS+=(OSM_PROM_CADVISOR_PORTS=$OSM_PROM_CADVISOR_PORT) + OSM_PORTS+=(OSM_GRAFANA_PORTS=$OSM_GRAFANA_PORT) + #[ -n "$INSTALL_PERFMON" ] && OSM_PORTS+=(OSM_PM_PORTS=$OSM_PM_PORT) + [ -n "$INSTALL_ELK" ] && OSM_PORTS+=(OSM_ELK_PORTS=$OSM_ELK_PORT) + else + OSM_PORTS+=(OSM_NBI_PORTS=$OSM_NBI_PORT:$OSM_NBI_PORT) + OSM_PORTS+=(OSM_RO_PORTS=$OSM_RO_PORT:$OSM_RO_PORT) + OSM_PORTS+=(OSM_KEYSTONE_PORTS=$OSM_KEYSTONE_PORT:$OSM_KEYSTONE_PORT) + OSM_PORTS+=(OSM_UI_PORTS=$OSM_UI_PORT:$OSM_UI_PORT) + OSM_PORTS+=(OSM_MON_PORTS=$OSM_MON_PORT:$OSM_MON_PORT) + OSM_PORTS+=(OSM_PROM_PORTS=$OSM_PROM_HOSTPORT:$OSM_PROM_PORT) + OSM_PORTS+=(OSM_PROM_CADVISOR_PORTS=$OSM_PROM_CADVISOR_PORT:$OSM_PROM_CADVISOR_PORT) + OSM_PORTS+=(OSM_GRAFANA_PORTS=$OSM_GRAFANA_PORT:$OSM_GRAFANA_PORT) + #[ -n "$INSTALL_PERFMON" ] && OSM_PORTS+=(OSM_PM_PORTS=$OSM_PM_PORT:$OSM_PM_PORT) + [ -n "$INSTALL_ELK" ] && OSM_PORTS+=(OSM_ELK_PORTS=$OSM_ELK_PORT:$OSM_ELK_PORT) + fi + echo "export ${OSM_PORTS[@]}" | $WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export OSM_NETWORK=net${OSM_STACK_NAME}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export TAG=${OSM_DOCKER_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export DOCKER_USER=${DOCKER_USER}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export KAFKA_TAG=${KAFKA_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export PROMETHEUS_TAG=${PROMETHEUS_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export KEYSTONEDB_TAG=${KEYSTONEDB_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export PROMETHEUS_CADVISOR_TAG=${PROMETHEUS_CADVISOR_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export GRAFANA_TAG=${GRAFANA_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + + pushd $OSM_DOCKER_WORK_DIR + if [ -n "$INSTALL_PLA" ]; then + track deploy_osm_pla + sg docker -c ". ./osm_ports.sh; docker stack deploy -c $OSM_DOCKER_WORK_DIR/docker-compose.yaml -c $OSM_DOCKER_WORK_DIR/docker-compose-ui.yaml -c $OSM_DOCKER_WORK_DIR/osm_pla/docker-compose.yaml $OSM_STACK_NAME" + else + sg docker -c ". ./osm_ports.sh; docker stack deploy -c $OSM_DOCKER_WORK_DIR/docker-compose.yaml -c $OSM_DOCKER_WORK_DIR/docker-compose-ui.yaml $OSM_STACK_NAME" + fi + popd + + echo "Finished deployment of lightweight build" +} + +function deploy_elk() { + echo "Pulling docker images for ELK" + sg docker -c "docker pull docker.elastic.co/elasticsearch/elasticsearch-oss:${ELASTIC_VERSION}" || FATAL "cannot get elasticsearch docker image" + sg docker -c "docker pull docker.elastic.co/beats/metricbeat:${ELASTIC_VERSION}" || FATAL "cannot get metricbeat docker image" + sg docker -c "docker pull docker.elastic.co/beats/filebeat:${ELASTIC_VERSION}" || FATAL "cannot get filebeat docker image" + sg docker -c "docker pull docker.elastic.co/kibana/kibana-oss:${ELASTIC_VERSION}" || FATAL "cannot get kibana docker image" + sg docker -c "docker pull bobrik/curator:${ELASTIC_CURATOR_VERSION}" || FATAL "cannot get curator docker image" + echo "Finished pulling elk docker images" + $WORKDIR_SUDO mkdir -p "$OSM_DOCKER_WORK_DIR/osm_elk" + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/osm_elk/* $OSM_DOCKER_WORK_DIR/osm_elk + remove_stack osm_elk + echo "Deploying ELK stack" + sg docker -c "OSM_NETWORK=net${OSM_STACK_NAME} docker stack deploy -c $OSM_DOCKER_WORK_DIR/osm_elk/docker-compose.yml osm_elk" + echo "Waiting for ELK stack to be up and running" + time=0 + step=5 + timelength=40 + elk_is_up=1 + while [ $time -le $timelength ]; do + if [[ $(curl -f -XGET http://127.0.0.1:5601/status -I 2>/dev/null | grep "HTTP/1.1 200 OK" | wc -l ) -eq 1 ]]; then + elk_is_up=0 + break + fi + sleep $step + time=$((time+step)) + done + if [ $elk_is_up -eq 0 ]; then + echo "ELK is up and running. Trying to create index pattern..." + #Create index pattern + curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/saved_objects/index-pattern/filebeat-*" \ + -d"{\"attributes\":{\"title\":\"filebeat-*\",\"timeFieldName\":\"@timestamp\"}}" 2>/dev/null + #Make it the default index + curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/kibana/settings/defaultIndex" \ + -d"{\"value\":\"filebeat-*\"}" 2>/dev/null + else + echo "Cannot connect to Kibana to create index pattern." + echo "Once Kibana is running, you can use the following instructions to create index pattern:" + echo 'curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/saved_objects/index-pattern/filebeat-*" \ + -d"{\"attributes\":{\"title\":\"filebeat-*\",\"timeFieldName\":\"@timestamp\"}}"' + echo 'curl -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/kibana/settings/defaultIndex" \ + -d"{\"value\":\"filebeat-*\"}"' + fi + echo "Finished deployment of ELK stack" + return 0 +} + +function add_local_k8scluster() { + /usr/bin/osm --all-projects vim-create \ + --name _system-osm-vim \ + --account_type dummy \ + --auth_url http://dummy \ + --user osm --password osm --tenant osm \ + --description "dummy" \ + --config '{management_network_name: mgmt}' + /usr/bin/osm --all-projects k8scluster-add \ + --creds ${HOME}/.kube/config \ + --vim _system-osm-vim \ + --k8s-nets '{"net1": null}' \ + --version '1.15' \ + --description "OSM Internal Cluster" \ + _system-osm-k8s +} + +function install_lightweight() { + track checkingroot + [ "$USER" == "root" ] && FATAL "You are running the installer as root. The installer is prepared to be executed as a normal user with sudo privileges." + track noroot + + if [ -n "$KUBERNETES" ]; then + [ -z "$ASSUME_YES" ] && ! ask_user "The installation will do the following + 1. Install and configure LXD + 2. Install juju + 3. Install docker CE + 4. Disable swap space + 5. Install and initialize Kubernetes + as pre-requirements. + Do you want to proceed (Y/n)? " y && echo "Cancelled!" && exit 1 + + else + [ -z "$ASSUME_YES" ] && ! ask_user "The installation will configure LXD, install juju, install docker CE and init a docker swarm, as pre-requirements. Do you want to proceed (Y/n)? " y && echo "Cancelled!" && exit 1 + fi + track proceed + + echo "Installing lightweight build of OSM" + LWTEMPDIR="$(mktemp -d -q --tmpdir "installosmlight.XXXXXX")" + trap 'rm -rf "${LWTEMPDIR}"' EXIT + DEFAULT_IF=$(ip route list|awk '$1=="default" {print $5; exit}') + [ -z "$DEFAULT_IF" ] && DEFAULT_IF=$(route -n |awk '$1~/^0.0.0.0/ {print $8; exit}') + [ -z "$DEFAULT_IF" ] && FATAL "Not possible to determine the interface with the default route 0.0.0.0" + DEFAULT_IP=`ip -o -4 a s ${DEFAULT_IF} |awk '{split($4,a,"/"); print a[1]}'` + [ -z "$DEFAULT_IP" ] && FATAL "Not possible to determine the IP address of the interface with the default route" + DEFAULT_MTU=$(ip addr show ${DEFAULT_IF} | perl -ne 'if (/mtu\s(\d+)/) {print $1;}') + + # if no host is passed in, we need to install lxd/juju, unless explicilty asked not to + if [ -z "$OSM_VCA_HOST" ] && [ -z "$INSTALL_NOLXD" ] && [ -z "$LXD_CLOUD_FILE" ]; then + need_packages_lw="snapd" + echo -e "Checking required packages: $need_packages_lw" + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "One or several required packages are not installed. Updating apt cache requires root privileges." \ + || sudo apt-get update \ + || FATAL "failed to run apt-get update" + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "Installing $need_packages_lw requires root privileges." \ + || sudo apt-get install -y $need_packages_lw \ + || FATAL "failed to install $need_packages_lw" + install_lxd + fi + + track prereqok + + [ -n "$INSTALL_NODOCKER" ] || (install_docker_ce && track docker_ce) + + echo "Creating folders for installation" + [ ! -d "$OSM_DOCKER_WORK_DIR" ] && $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR + [ ! -d "$OSM_DOCKER_WORK_DIR/osm_pla" -a -n "$INSTALL_PLA" ] && $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/osm_pla + [ -n "$KUBERNETES" ] && $WORKDIR_SUDO cp -b $OSM_DEVOPS/installers/docker/cluster-config.yaml $OSM_DOCKER_WORK_DIR/cluster-config.yaml + + #Installs Kubernetes + if [ -n "$KUBERNETES" ]; then + install_kube + track install_k8s + init_kubeadm $OSM_DOCKER_WORK_DIR/cluster-config.yaml + kube_config_dir + track init_k8s + if [ -n "$INSTALL_K8S_MONITOR" ]; then + # uninstall OSM MONITORING + uninstall_k8s_monitoring + track uninstall_k8s_monitoring + fi + #remove old namespace + remove_k8s_namespace $OSM_STACK_NAME + deploy_cni_provider + taint_master_node + install_helm + track install_helm + install_k8s_storageclass + track k8s_storageclass + install_k8s_metallb + track k8s_metallb + else + #install_docker_compose + [ -n "$INSTALL_NODOCKER" ] || init_docker_swarm + track docker_swarm + fi + + [ -z "$INSTALL_NOJUJU" ] && install_juju + track juju_install + + if [ -z "$OSM_VCA_HOST" ]; then + if [ -z "$CONTROLLER_NAME" ]; then + + if [ -n "$KUBERNETES" ]; then + juju_createcontroller_k8s + juju_addlxd_cloud + else + if [ -n "$LXD_CLOUD_FILE" ]; then + [ -z "$LXD_CRED_FILE" ] && FATAL "The installer needs the LXD credential yaml if the LXD is external" + OSM_VCA_CLOUDNAME="lxd-cloud" + juju add-cloud $OSM_VCA_CLOUDNAME $LXD_CLOUD_FILE --force || juju update-cloud $OSM_VCA_CLOUDNAME --client -f $LXD_CLOUD_FILE + juju add-credential $OSM_VCA_CLOUDNAME -f $LXD_CRED_FILE || juju update-credential $OSM_VCA_CLOUDNAME lxd-cloud-creds -f $LXD_CRED_FILE + fi + juju_createcontroller + juju_createproxy + fi + else + OSM_VCA_CLOUDNAME="lxd-cloud" + if [ -n "$LXD_CLOUD_FILE" ]; then + [ -z "$LXD_CRED_FILE" ] && FATAL "The installer needs the LXD credential yaml if the LXD is external" + juju add-cloud -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME $LXD_CLOUD_FILE --force || juju update-cloud lxd-cloud -c $CONTROLLER_NAME -f $LXD_CLOUD_FILE + juju add-credential -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME -f $LXD_CRED_FILE || juju update-credential lxd-cloud -c $CONTROLLER_NAME -f $LXD_CRED_FILE + else + mkdir -p ~/.osm + cat << EOF > ~/.osm/lxd-cloud.yaml +clouds: + lxd-cloud: + type: lxd + auth-types: [certificate] + endpoint: "https://$DEFAULT_IP:8443" + config: + ssl-hostname-verification: false +EOF + openssl req -nodes -new -x509 -keyout ~/.osm/client.key -out ~/.osm/client.crt -days 365 -subj "/C=FR/ST=Nice/L=Nice/O=ETSI/OU=OSM/CN=osm.etsi.org" + local server_cert=`cat /var/snap/lxd/common/lxd/server.crt | sed 's/^/ /'` + local client_cert=`cat ~/.osm/client.crt | sed 's/^/ /'` + local client_key=`cat ~/.osm/client.key | sed 's/^/ /'` + cat << EOF > ~/.osm/lxd-credentials.yaml +credentials: + lxd-cloud: + lxd-cloud: + auth-type: certificate + server-cert: | +$server_cert + client-cert: | +$client_cert + client-key: | +$client_key +EOF + lxc config trust add local: ~/.osm/client.crt + juju add-cloud -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME ~/.osm/lxd-cloud.yaml --force || juju update-cloud lxd-cloud -c $CONTROLLER_NAME -f ~/.osm/lxd-cloud.yaml + juju add-credential -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME -f ~/.osm/lxd-credentials.yaml || juju update-credential lxd-cloud -c $CONTROLLER_NAME -f ~/.osm/lxd-credentials.yaml + fi + fi + [ -z "$CONTROLLER_NAME" ] && OSM_VCA_HOST=`sg lxd -c "juju show-controller $OSM_STACK_NAME"|grep api-endpoints|awk -F\' '{print $2}'|awk -F\: '{print $1}'` + [ -n "$CONTROLLER_NAME" ] && OSM_VCA_HOST=`juju show-controller $CONTROLLER_NAME |grep api-endpoints|awk -F\' '{print $2}'|awk -F\: '{print $1}'` + [ -z "$OSM_VCA_HOST" ] && FATAL "Cannot obtain juju controller IP address" + fi + track juju_controller + + if [ -z "$OSM_VCA_SECRET" ]; then + [ -z "$CONTROLLER_NAME" ] && OSM_VCA_SECRET=$(parse_juju_password $OSM_STACK_NAME) + [ -n "$CONTROLLER_NAME" ] && OSM_VCA_SECRET=$(parse_juju_password $CONTROLLER_NAME) + [ -z "$OSM_VCA_SECRET" ] && FATAL "Cannot obtain juju secret" + fi + if [ -z "$OSM_VCA_PUBKEY" ]; then + OSM_VCA_PUBKEY=$(cat $HOME/.local/share/juju/ssh/juju_id_rsa.pub) + [ -z "$OSM_VCA_PUBKEY" ] && FATAL "Cannot obtain juju public key" + fi + if [ -z "$OSM_VCA_CACERT" ]; then + [ -z "$CONTROLLER_NAME" ] && OSM_VCA_CACERT=$(juju controllers --format json | jq -r --arg controller $OSM_STACK_NAME '.controllers[$controller]["ca-cert"]' | base64 | tr -d \\n) + [ -n "$CONTROLLER_NAME" ] && OSM_VCA_CACERT=$(juju controllers --format json | jq -r --arg controller $CONTROLLER_NAME '.controllers[$controller]["ca-cert"]' | base64 | tr -d \\n) + [ -z "$OSM_VCA_CACERT" ] && FATAL "Cannot obtain juju CA certificate" + fi + + # Set OSM_VCA_APIPROXY only when it is not a k8s installation + if [ -z "$KUBERNETES" ]; then + if [ -z "$OSM_VCA_APIPROXY" ]; then + OSM_VCA_APIPROXY=$DEFAULT_IP + [ -z "$OSM_VCA_APIPROXY" ] && FATAL "Cannot obtain juju api proxy" + fi + juju_createproxy + fi + track juju + + if [ -z "$OSM_DATABASE_COMMONKEY" ]; then + OSM_DATABASE_COMMONKEY=$(generate_secret) + [ -z "OSM_DATABASE_COMMONKEY" ] && FATAL "Cannot generate common db secret" + fi + + # Deploy OSM services + [ -z "$DOCKER_NOBUILD" ] && generate_docker_images + track docker_build + + if [ -n "$KUBERNETES" ]; then + generate_k8s_manifest_files + else + generate_docker_compose_files + fi + track manifest_files + generate_prometheus_grafana_files + generate_docker_env_files + track env_files + + if [ -n "$KUBERNETES" ]; then + deploy_charmed_services + kube_secrets + update_manifest_files + namespace_vol + deploy_osm_services + if [ -n "$INSTALL_PLA"]; then + # optional PLA install + deploy_osm_pla_service + track deploy_osm_pla + fi + track deploy_osm_services_k8s + if [ -n "$INSTALL_K8S_MONITOR" ]; then + # install OSM MONITORING + install_k8s_monitoring + track install_k8s_monitoring + fi + else + # remove old stack + remove_stack $OSM_STACK_NAME + create_docker_network + deploy_lightweight + generate_osmclient_script + track docker_deploy + install_prometheus_nodeexporter + track nodeexporter + [ -n "$INSTALL_VIMEMU" ] && install_vimemu && track vimemu + [ -n "$INSTALL_ELK" ] && deploy_elk && track elk + fi + + [ -z "$INSTALL_NOHOSTCLIENT" ] && install_osmclient + track osmclient + + echo -e "Checking OSM health state..." + if [ -n "$KUBERNETES" ]; then + $OSM_DEVOPS/installers/osm_health.sh -s ${OSM_STACK_NAME} -k || \ + echo -e "OSM is not healthy, but will probably converge to a healthy state soon." && \ + echo -e "Check OSM status with: kubectl -n ${OSM_STACK_NAME} get all" && \ + track osm_unhealthy + else + $OSM_DEVOPS/installers/osm_health.sh -s ${OSM_STACK_NAME} || \ + echo -e "OSM is not healthy, but will probably converge to a healthy state soon." && \ + echo -e "Check OSM status with: docker service ls; docker stack ps ${OSM_STACK_NAME}" && \ + track osm_unhealthy + fi + track after_healthcheck + + [ -n "$KUBERNETES" ] && add_local_k8scluster + track add_local_k8scluster + + wget -q -O- https://osm-download.etsi.org/ftp/osm-10.0-ten/README2.txt &> /dev/null + track end + return 0 +} + +function install_to_openstack() { + + if [ -z "$2" ]; then + FATAL "OpenStack installer requires a valid external network name" + fi + + # Install Pip for Python3 + $WORKDIR_SUDO apt install -y python3-pip python3-venv + $WORKDIR_SUDO -H LC_ALL=C python3 -m pip install -U pip + + # Create a venv to avoid conflicts with the host installation + python3 -m venv $OPENSTACK_PYTHON_VENV + + source $OPENSTACK_PYTHON_VENV/bin/activate + + # Install Ansible, OpenStack client and SDK, latest openstack version supported is Train + python -m pip install -U wheel + python -m pip install -U "python-openstackclient<=4.0.2" "openstacksdk>=0.12.0,<=0.36.2" "ansible>=2.10,<2.11" + + # Install the Openstack cloud module (ansible>=2.10) + ansible-galaxy collection install openstack.cloud + + export ANSIBLE_CONFIG="$OSM_DEVOPS/installers/openstack/ansible.cfg" + + OSM_INSTALLER_ARGS="${REPO_ARGS[@]}" + + ANSIBLE_VARS="external_network_name=$2 setup_volume=$3 server_name=$OPENSTACK_VM_NAME" + + if [ -n "$OPENSTACK_SSH_KEY_FILE" ]; then + ANSIBLE_VARS+=" key_file=$OPENSTACK_SSH_KEY_FILE" + fi + + if [ -n "$OPENSTACK_USERDATA_FILE" ]; then + ANSIBLE_VARS+=" userdata_file=$OPENSTACK_USERDATA_FILE" + fi + + # Execute the Ansible playbook based on openrc or clouds.yaml + if [ -e "$1" ]; then + . $1 + ansible-playbook -e installer_args="\"$OSM_INSTALLER_ARGS\"" -e "$ANSIBLE_VARS" \ + $OSM_DEVOPS/installers/openstack/site.yml + else + ansible-playbook -e installer_args="\"$OSM_INSTALLER_ARGS\"" -e "$ANSIBLE_VARS" \ + -e cloud_name=$1 $OSM_DEVOPS/installers/openstack/site.yml + fi + + # Exit from venv + deactivate + + return 0 +} + +function install_vimemu() { + echo "\nInstalling vim-emu" + EMUTEMPDIR="$(mktemp -d -q --tmpdir "installosmvimemu.XXXXXX")" + trap 'rm -rf "${EMUTEMPDIR}"' EXIT + # install prerequisites (OVS is a must for the emulator to work) + sudo apt-get install openvswitch-switch + # clone vim-emu repository (attention: branch is currently master only) + echo "Cloning vim-emu repository ..." + git clone https://osm.etsi.org/gerrit/osm/vim-emu.git $EMUTEMPDIR + # build vim-emu docker + echo "Building vim-emu Docker container..." + + sg docker -c "docker build -t vim-emu-img -f $EMUTEMPDIR/Dockerfile --no-cache $EMUTEMPDIR/" || FATAL "cannot build vim-emu-img docker image" + # start vim-emu container as daemon + echo "Starting vim-emu Docker container 'vim-emu' ..." + if [ -n "$INSTALL_LIGHTWEIGHT" ]; then + # in lightweight mode, the emulator needs to be attached to netOSM + sg docker -c "docker run --name vim-emu -t -d --restart always --privileged --pid='host' --network=net${OSM_STACK_NAME} -v /var/run/docker.sock:/var/run/docker.sock vim-emu-img python examples/osm_default_daemon_topology_2_pop.py" + else + # classic build mode + sg docker -c "docker run --name vim-emu -t -d --restart always --privileged --pid='host' -v /var/run/docker.sock:/var/run/docker.sock vim-emu-img python examples/osm_default_daemon_topology_2_pop.py" + fi + echo "Waiting for 'vim-emu' container to start ..." + sleep 5 + export VIMEMU_HOSTNAME=$(sg docker -c "docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' vim-emu") + echo "vim-emu running at ${VIMEMU_HOSTNAME} ..." + # print vim-emu connection info + echo -e "\nYou might be interested in adding the following vim-emu env variables to your .bashrc file:" + echo " export VIMEMU_HOSTNAME=${VIMEMU_HOSTNAME}" + echo -e "To add the emulated VIM to OSM you should do:" + echo " osm vim-create --name emu-vim1 --user username --password password --auth_url http://${VIMEMU_HOSTNAME}:6001/v2.0 --tenant tenantName --account_type openstack" +} + +function install_k8s_monitoring() { + # install OSM monitoring + $WORKDIR_SUDO chmod +x $OSM_DEVOPS/installers/k8s/*.sh + $WORKDIR_SUDO $OSM_DEVOPS/installers/k8s/install_osm_k8s_monitoring.sh +} + +function uninstall_k8s_monitoring() { + # uninstall OSM monitoring + $WORKDIR_SUDO $OSM_DEVOPS/installers/k8s/uninstall_osm_k8s_monitoring.sh +} + +function dump_vars(){ + echo "DEVELOP=$DEVELOP" + echo "INSTALL_FROM_SOURCE=$INSTALL_FROM_SOURCE" + echo "UNINSTALL=$UNINSTALL" + echo "UPDATE=$UPDATE" + echo "RECONFIGURE=$RECONFIGURE" + echo "TEST_INSTALLER=$TEST_INSTALLER" + echo "INSTALL_VIMEMU=$INSTALL_VIMEMU" + echo "INSTALL_PLA=$INSTALL_PLA" + echo "INSTALL_LXD=$INSTALL_LXD" + echo "INSTALL_LIGHTWEIGHT=$INSTALL_LIGHTWEIGHT" + echo "INSTALL_ONLY=$INSTALL_ONLY" + echo "INSTALL_ELK=$INSTALL_ELK" + echo "INSTALL_NOCACHELXDIMAGES=$INSTALL_NOCACHELXDIMAGES" + #echo "INSTALL_PERFMON=$INSTALL_PERFMON" + echo "INSTALL_TO_OPENSTACK=$INSTALL_TO_OPENSTACK" + echo "OPENSTACK_PUBLIC_NET_NAME=$OPENSTACK_PUBLIC_NET_NAME" + echo "OPENSTACK_OPENRC_FILE_OR_CLOUD=$OPENSTACK_OPENRC_FILE_OR_CLOUD" + echo "OPENSTACK_ATTACH_VOLUME=$OPENSTACK_ATTACH_VOLUME" + echo "OPENSTACK_SSH_KEY_FILE"="$OPENSTACK_SSH_KEY_FILE" + echo "OPENSTACK_USERDATA_FILE"="$OPENSTACK_USERDATA_FILE" + echo "OPENSTACK_VM_NAME"="$OPENSTACK_VM_NAME" + echo "INSTALL_K8S_MONITOR=$INSTALL_K8S_MONITOR" + echo "TO_REBUILD=$TO_REBUILD" + echo "INSTALL_NOLXD=$INSTALL_NOLXD" + echo "INSTALL_NODOCKER=$INSTALL_NODOCKER" + echo "INSTALL_NOJUJU=$INSTALL_NOJUJU" + echo "RELEASE=$RELEASE" + echo "REPOSITORY=$REPOSITORY" + echo "REPOSITORY_BASE=$REPOSITORY_BASE" + echo "REPOSITORY_KEY=$REPOSITORY_KEY" + echo "OSM_DEVOPS=$OSM_DEVOPS" + echo "OSM_VCA_HOST=$OSM_VCA_HOST" + echo "OSM_VCA_SECRET=$OSM_VCA_SECRET" + echo "OSM_VCA_PUBKEY=$OSM_VCA_PUBKEY" + echo "NO_HOST_PORTS=$NO_HOST_PORTS" + echo "DOCKER_NOBUILD=$DOCKER_NOBUILD" + echo "WORKDIR_SUDO=$WORKDIR_SUDO" + echo "OSM_WORK_DIR=$OSM_WORK_DIR" + echo "OSM_DOCKER_TAG=$OSM_DOCKER_TAG" + echo "DOCKER_USER=$DOCKER_USER" + echo "OSM_STACK_NAME=$OSM_STACK_NAME" + echo "PULL_IMAGES=$PULL_IMAGES" + echo "KUBERNETES=$KUBERNETES" + echo "DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL" + echo "DOCKER_PROXY_URL=$DOCKER_PROXY_URL" + echo "SHOWOPTS=$SHOWOPTS" + echo "Install from specific refspec (-b): $COMMIT_ID" +} + +function track(){ + ctime=`date +%s` + duration=$((ctime - SESSION_ID)) + url="http://www.woopra.com/track/ce?project=osm.etsi.org&cookie=${SESSION_ID}" + #url="${url}&ce_campaign_name=${CAMPAIGN_NAME}" + event_name="bin" + [ -z "$INSTALL_LIGHTWEIGHT" ] && [ -n "$INSTALL_FROM_SOURCE" ] && event_name="binsrc" + [ -z "$INSTALL_LIGHTWEIGHT" ] && [ -n "$INSTALL_FROM_LXDIMAGES" ] && event_name="lxd" + [ -n "$INSTALL_LIGHTWEIGHT" ] && event_name="lw" + event_name="${event_name}_$1" + url="${url}&event=${event_name}&ce_duration=${duration}" + wget -q -O /dev/null $url +} + +function parse_docker_registry_url() { + DOCKER_REGISTRY_USER=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); split(a[1],b,":"); print b[1]}') + DOCKER_REGISTRY_PASSWORD=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); split(a[1],b,":"); print b[2]}') + DOCKER_REGISTRY_URL=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); print a[2]}') +} + +JUJU_VERSION=2.9 +JUJU_AGENT_VERSION=2.9.9 +UNINSTALL="" +DEVELOP="" +UPDATE="" +RECONFIGURE="" +TEST_INSTALLER="" +INSTALL_LXD="" +SHOWOPTS="" +COMMIT_ID="" +ASSUME_YES="" +INSTALL_FROM_SOURCE="" +RELEASE="ReleaseTEN" +REPOSITORY="stable" +INSTALL_VIMEMU="" +INSTALL_PLA="" +LXD_REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/lxd" +LXD_REPOSITORY_PATH="" +INSTALL_LIGHTWEIGHT="y" +INSTALL_TO_OPENSTACK="" +OPENSTACK_OPENRC_FILE_OR_CLOUD="" +OPENSTACK_PUBLIC_NET_NAME="" +OPENSTACK_ATTACH_VOLUME="false" +OPENSTACK_SSH_KEY_FILE="" +OPENSTACK_USERDATA_FILE="" +OPENSTACK_VM_NAME="server-osm" +OPENSTACK_PYTHON_VENV="$HOME/.virtual-envs/osm" +INSTALL_ONLY="" +INSTALL_ELK="" +TO_REBUILD="" +INSTALL_NOLXD="" +INSTALL_NODOCKER="" +INSTALL_NOJUJU="" +KUBERNETES="y" +INSTALL_K8S_MONITOR="" +INSTALL_NOHOSTCLIENT="" +INSTALL_NOCACHELXDIMAGES="" +SESSION_ID=`date +%s` +OSM_DEVOPS= +OSM_VCA_HOST= +OSM_VCA_SECRET= +OSM_VCA_PUBKEY= +OSM_VCA_CLOUDNAME="localhost" +OSM_VCA_K8S_CLOUDNAME="k8scloud" +OSM_STACK_NAME=osm +NO_HOST_PORTS="" +DOCKER_NOBUILD="" +REPOSITORY_KEY="OSM%20ETSI%20Release%20Key.gpg" +REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/debian" +WORKDIR_SUDO=sudo +OSM_WORK_DIR="/etc/osm" +OSM_DOCKER_WORK_DIR="/etc/osm/docker" +OSM_K8S_WORK_DIR="${OSM_DOCKER_WORK_DIR}/osm_pods" +OSM_HOST_VOL="/var/lib/osm" +OSM_NAMESPACE_VOL="${OSM_HOST_VOL}/${OSM_STACK_NAME}" +OSM_DOCKER_TAG=latest +DOCKER_USER=opensourcemano +PULL_IMAGES="y" +KAFKA_TAG=2.11-1.0.2 +PROMETHEUS_TAG=v2.4.3 +GRAFANA_TAG=latest +PROMETHEUS_NODE_EXPORTER_TAG=0.18.1 +PROMETHEUS_CADVISOR_TAG=latest +KEYSTONEDB_TAG=10 +OSM_DATABASE_COMMONKEY= +ELASTIC_VERSION=6.4.2 +ELASTIC_CURATOR_VERSION=5.5.4 +POD_NETWORK_CIDR=10.244.0.0/16 +K8S_MANIFEST_DIR="/etc/kubernetes/manifests" +RE_CHECK='^[a-z0-9]([-a-z0-9]*[a-z0-9])?$' +DOCKER_REGISTRY_URL= +DOCKER_PROXY_URL= +MODULE_DOCKER_TAG= + +while getopts ":b:r:c:n:k:u:R:D:o:O:m:N:H:S:s:w:t:U:P:A:l:L:K:d:p:T:f:F:-: hy" o; do + case "${o}" in + b) + COMMIT_ID=${OPTARG} + PULL_IMAGES="" + ;; + r) + REPOSITORY="${OPTARG}" + REPO_ARGS+=(-r "$REPOSITORY") + ;; + c) + [ "${OPTARG}" == "swarm" ] && KUBERNETES="" && REPO_ARGS+=(-c "${OPTARG}") && continue + [ "${OPTARG}" == "k8s" ] && KUBERNETES="y" && continue + echo -e "Invalid argument for -i : ' $OPTARG'\n" >&2 + usage && exit 1 + ;; + k) + REPOSITORY_KEY="${OPTARG}" + REPO_ARGS+=(-k "$REPOSITORY_KEY") + ;; + u) + REPOSITORY_BASE="${OPTARG}" + REPO_ARGS+=(-u "$REPOSITORY_BASE") + ;; + R) + RELEASE="${OPTARG}" + REPO_ARGS+=(-R "$RELEASE") + ;; + D) + OSM_DEVOPS="${OPTARG}" + ;; + o) + INSTALL_ONLY="y" + [ "${OPTARG}" == "vimemu" ] && INSTALL_VIMEMU="y" && continue + [ "${OPTARG}" == "elk_stack" ] && INSTALL_ELK="y" && continue + [ "${OPTARG}" == "k8s_monitor" ] && INSTALL_K8S_MONITOR="y" && continue + ;; + O) + INSTALL_TO_OPENSTACK="y" + if [ -n "${OPTARG}" ]; then + OPENSTACK_OPENRC_FILE_OR_CLOUD="${OPTARG}" + else + echo -e "Invalid argument for -O : ' $OPTARG'\n" >&2 + usage && exit 1 + fi + ;; + f) + OPENSTACK_SSH_KEY_FILE="${OPTARG}" + ;; + F) + OPENSTACK_USERDATA_FILE="${OPTARG}" + ;; + N) + OPENSTACK_PUBLIC_NET_NAME="${OPTARG}" + ;; + m) + [ "${OPTARG}" == "NG-UI" ] && TO_REBUILD="$TO_REBUILD NG-UI" && continue + [ "${OPTARG}" == "NBI" ] && TO_REBUILD="$TO_REBUILD NBI" && continue + [ "${OPTARG}" == "LCM" ] && TO_REBUILD="$TO_REBUILD LCM" && continue + [ "${OPTARG}" == "RO" ] && TO_REBUILD="$TO_REBUILD RO" && continue + [ "${OPTARG}" == "MON" ] && TO_REBUILD="$TO_REBUILD MON" && continue + [ "${OPTARG}" == "POL" ] && TO_REBUILD="$TO_REBUILD POL" && continue + [ "${OPTARG}" == "PLA" ] && TO_REBUILD="$TO_REBUILD PLA" && continue + [ "${OPTARG}" == "osmclient" ] && TO_REBUILD="$TO_REBUILD osmclient" && continue + [ "${OPTARG}" == "KAFKA" ] && TO_REBUILD="$TO_REBUILD KAFKA" && continue + [ "${OPTARG}" == "MONGO" ] && TO_REBUILD="$TO_REBUILD MONGO" && continue + [ "${OPTARG}" == "PROMETHEUS" ] && TO_REBUILD="$TO_REBUILD PROMETHEUS" && continue + [ "${OPTARG}" == "PROMETHEUS-CADVISOR" ] && TO_REBUILD="$TO_REBUILD PROMETHEUS-CADVISOR" && continue + [ "${OPTARG}" == "KEYSTONE-DB" ] && TO_REBUILD="$TO_REBUILD KEYSTONE-DB" && continue + [ "${OPTARG}" == "GRAFANA" ] && TO_REBUILD="$TO_REBUILD GRAFANA" && continue + [ "${OPTARG}" == "NONE" ] && TO_REBUILD="$TO_REBUILD NONE" && continue + ;; + H) + OSM_VCA_HOST="${OPTARG}" + ;; + S) + OSM_VCA_SECRET="${OPTARG}" + ;; + s) + OSM_STACK_NAME="${OPTARG}" && [ -n "$KUBERNETES" ] && [[ ! "${OPTARG}" =~ $RE_CHECK ]] && echo "Namespace $OPTARG is invalid. Regex used for validation is $RE_CHECK" && exit 0 + ;; + w) + # when specifying workdir, do not use sudo for access + WORKDIR_SUDO= + OSM_WORK_DIR="${OPTARG}" + ;; + t) + OSM_DOCKER_TAG="${OPTARG}" + REPO_ARGS+=(-t "$OSM_DOCKER_TAG") + ;; + U) + DOCKER_USER="${OPTARG}" + ;; + P) + OSM_VCA_PUBKEY=$(cat ${OPTARG}) + ;; + A) + OSM_VCA_APIPROXY="${OPTARG}" + ;; + l) + LXD_CLOUD_FILE="${OPTARG}" + ;; + L) + LXD_CRED_FILE="${OPTARG}" + ;; + K) + CONTROLLER_NAME="${OPTARG}" + ;; + d) + DOCKER_REGISTRY_URL="${OPTARG}" + ;; + p) + DOCKER_PROXY_URL="${OPTARG}" + ;; + T) + MODULE_DOCKER_TAG="${OPTARG}" + ;; + -) + [ "${OPTARG}" == "help" ] && usage && exit 0 + [ "${OPTARG}" == "source" ] && INSTALL_FROM_SOURCE="y" && PULL_IMAGES="" && continue + [ "${OPTARG}" == "develop" ] && DEVELOP="y" && continue + [ "${OPTARG}" == "uninstall" ] && UNINSTALL="y" && continue + [ "${OPTARG}" == "update" ] && UPDATE="y" && continue + [ "${OPTARG}" == "reconfigure" ] && RECONFIGURE="y" && continue + [ "${OPTARG}" == "test" ] && TEST_INSTALLER="y" && continue + [ "${OPTARG}" == "lxdinstall" ] && INSTALL_LXD="y" && continue + [ "${OPTARG}" == "nolxd" ] && INSTALL_NOLXD="y" && continue + [ "${OPTARG}" == "nodocker" ] && INSTALL_NODOCKER="y" && continue + [ "${OPTARG}" == "lightweight" ] && INSTALL_LIGHTWEIGHT="y" && continue + [ "${OPTARG}" == "vimemu" ] && INSTALL_VIMEMU="y" && continue + [ "${OPTARG}" == "elk_stack" ] && INSTALL_ELK="y" && continue + [ "${OPTARG}" == "showopts" ] && SHOWOPTS="y" && continue + [ "${OPTARG}" == "nohostports" ] && NO_HOST_PORTS="y" && continue + [ "${OPTARG}" == "nojuju" ] && INSTALL_NOJUJU="y" && continue + [ "${OPTARG}" == "nodockerbuild" ] && DOCKER_NOBUILD="y" && continue + [ "${OPTARG}" == "nohostclient" ] && INSTALL_NOHOSTCLIENT="y" && continue + [ "${OPTARG}" == "pullimages" ] && continue + [ "${OPTARG}" == "k8s_monitor" ] && INSTALL_K8S_MONITOR="y" && continue + [ "${OPTARG}" == "charmed" ] && CHARMED="y" && continue + [ "${OPTARG}" == "bundle" ] && continue + [ "${OPTARG}" == "k8s" ] && continue + [ "${OPTARG}" == "lxd" ] && continue + [ "${OPTARG}" == "lxd-cred" ] && continue + [ "${OPTARG}" == "microstack" ] && continue + [ "${OPTARG}" == "overlay" ] && continue + [ "${OPTARG}" == "only-vca" ] && continue + [ "${OPTARG}" == "vca" ] && continue + [ "${OPTARG}" == "ha" ] && continue + [ "${OPTARG}" == "tag" ] && continue + [ "${OPTARG}" == "registry" ] && continue + [ "${OPTARG}" == "pla" ] && INSTALL_PLA="y" && continue + [ "${OPTARG}" == "volume" ] && OPENSTACK_ATTACH_VOLUME="true" && continue + [ "${OPTARG}" == "nocachelxdimages" ] && INSTALL_NOCACHELXDIMAGES="y" && continue + echo -e "Invalid option: '--$OPTARG'\n" >&2 + usage && exit 1 + ;; + :) + echo "Option -$OPTARG requires an argument" >&2 + usage && exit 1 + ;; + \?) + echo -e "Invalid option: '-$OPTARG'\n" >&2 + usage && exit 1 + ;; + h) + usage && exit 0 + ;; + y) + ASSUME_YES="y" + ;; + *) + usage && exit 1 + ;; + esac +done + +[ -n "$DOCKER_REGISTRY_URL" ] && parse_docker_registry_url +[ -n "$TO_REBUILD" ] && [ "$TO_REBUILD" != " NONE" ] && echo $TO_REBUILD | grep -q NONE && FATAL "Incompatible option: -m NONE cannot be used with other -m options" +[ -n "$TO_REBUILD" ] && [ "$TO_REBUILD" == " PLA" ] && [ -z "$INSTALL_PLA" ] && FATAL "Incompatible option: -m PLA cannot be used without --pla option" + +if [ -n "$SHOWOPTS" ]; then + dump_vars + exit 0 +fi + +if [ -n "$CHARMED" ]; then + if [ -n "$UNINSTALL" ]; then + ${OSM_DEVOPS}/installers/charmed_uninstall.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D /usr/share/osm-devops -t $DOCKER_TAG "$@" + else + ${OSM_DEVOPS}/installers/charmed_install.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D /usr/share/osm-devops -t $DOCKER_TAG "$@" + fi + + exit 0 +fi + +# if develop, we force master +[ -z "$COMMIT_ID" ] && [ -n "$DEVELOP" ] && COMMIT_ID="master" + +need_packages="git wget curl tar" + +[ -n "$INSTALL_TO_OPENSTACK" ] && install_to_openstack $OPENSTACK_OPENRC_FILE_OR_CLOUD $OPENSTACK_PUBLIC_NET_NAME $OPENSTACK_ATTACH_VOLUME && echo -e "\nDONE" && exit 0 + +echo -e "Checking required packages: $need_packages" +dpkg -l $need_packages &>/dev/null \ + || ! echo -e "One or several required packages are not installed. Updating apt cache requires root privileges." \ + || sudo apt-get update \ + || FATAL "failed to run apt-get update" +dpkg -l $need_packages &>/dev/null \ + || ! echo -e "Installing $need_packages requires root privileges." \ + || sudo apt-get install -y $need_packages \ + || FATAL "failed to install $need_packages" +sudo snap install jq +if [ -z "$OSM_DEVOPS" ]; then + if [ -n "$TEST_INSTALLER" ]; then + echo -e "\nUsing local devops repo for OSM installation" + OSM_DEVOPS="$(dirname $(realpath $(dirname $0)))" + else + echo -e "\nCreating temporary dir for OSM installation" + OSM_DEVOPS="$(mktemp -d -q --tmpdir "installosm.XXXXXX")" + trap 'rm -rf "$OSM_DEVOPS"' EXIT + + git clone https://osm.etsi.org/gerrit/osm/devops.git $OSM_DEVOPS + + if [ -z "$COMMIT_ID" ]; then + echo -e "\nGuessing the current stable release" + LATEST_STABLE_DEVOPS=`git -C $OSM_DEVOPS tag -l v[0-9].* | sort -V | tail -n1` + [ -z "$LATEST_STABLE_DEVOPS" ] && echo "Could not find the current latest stable release" && exit 0 + + echo "Latest tag in devops repo: $LATEST_STABLE_DEVOPS" + COMMIT_ID="tags/$LATEST_STABLE_DEVOPS" + else + echo -e "\nDEVOPS Using commit $COMMIT_ID" + fi + git -C $OSM_DEVOPS checkout $COMMIT_ID + fi +fi + +. $OSM_DEVOPS/common/all_funcs + +[ "${OSM_STACK_NAME}" == "osm" ] || OSM_DOCKER_WORK_DIR="$OSM_WORK_DIR/stack/$OSM_STACK_NAME" +[ -n "$KUBERNETES" ] && OSM_K8S_WORK_DIR="$OSM_DOCKER_WORK_DIR/osm_pods" && OSM_NAMESPACE_VOL="${OSM_HOST_VOL}/${OSM_STACK_NAME}" +[ -n "$INSTALL_LIGHTWEIGHT" ] && [ -n "$UNINSTALL" ] && uninstall_lightweight && echo -e "\nDONE" && exit 0 +[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_ELK" ] && deploy_elk +#[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_PERFMON" ] && deploy_perfmon +[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_VIMEMU" ] && install_vimemu +[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_K8S_MONITOR" ] && install_k8s_monitoring +[ -n "$INSTALL_ONLY" ] && echo -e "\nDONE" && exit 0 + +#Installation starts here +wget -q -O- https://osm-download.etsi.org/ftp/osm-10.0-ten/README.txt &> /dev/null +track start + +[ -n "$INSTALL_LIGHTWEIGHT" ] && install_lightweight && echo -e "\nDONE" && exit 0 +echo -e "\nInstalling OSM from refspec: $COMMIT_ID" +if [ -n "$INSTALL_FROM_SOURCE" ] && [ -z "$ASSUME_YES" ]; then + ! ask_user "The installation will take about 75-90 minutes. Continue (Y/n)? " y && echo "Cancelled!" && exit 1 +fi + +echo -e "Checking required packages: lxd" +lxd --version &>/dev/null || FATAL "lxd not present, exiting." +[ -n "$INSTALL_LXD" ] && echo -e "\nInstalling and configuring lxd" && install_lxd + +# use local devops for containers +export OSM_USE_LOCAL_DEVOPS=true + +#Install osmclient + +#Install vim-emu (optional) +[ -n "$INSTALL_VIMEMU" ] && install_docker_ce && install_vimemu + +wget -q -O- https://osm-download.etsi.org/ftp/osm-10.0-ten/README2.txt &> /dev/null +track end +echo -e "\nDONE" \ No newline at end of file diff --git a/_tmp/osm-install/gitlab.full_install_osm.sh b/_tmp/osm-install/gitlab.full_install_osm.sh new file mode 100755 index 0000000..34a0657 --- /dev/null +++ b/_tmp/osm-install/gitlab.full_install_osm.sh @@ -0,0 +1,1870 @@ +#!/bin/bash +# Copyright 2016 Telefónica Investigación y Desarrollo S.A.U. +# +# 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. + +function usage(){ + echo -e "usage: $0 [OPTIONS]" + echo -e "Install OSM from binaries or source code (by default, from binaries)" + echo -e " OPTIONS" + echo -e " -h / --help: print this help" + echo -e " -y: do not prompt for confirmation, assumes yes" + echo -e " -r : use specified repository name for osm packages" + echo -e " -R : use specified release for osm binaries (deb packages, lxd images, ...)" + echo -e " -u : use specified repository url for osm packages" + echo -e " -k : use specified repository public key url" + echo -e " -b : install OSM from source code using a specific branch (master, v2.0, ...) or tag" + echo -e " -b master (main dev branch)" + echo -e " -b v2.0 (v2.0 branch)" + echo -e " -b tags/v1.1.0 (a specific tag)" + echo -e " ..." + echo -e " -c deploy osm services using container . Valid values are or . If -c is not used then osm will be deployed using default orchestrator. When used with --uninstall, osm services deployed by the orchestrator will be uninstalled" + echo -e " -s or user defined stack name when installed using swarm or namespace when installed using k8s, default is osm" + echo -e " -H use specific juju host controller IP" + echo -e " -S use VCA/juju secret key" + echo -e " -P use VCA/juju public key file" + echo -e " -C use VCA/juju CA certificate file" + echo -e " -A use VCA/juju API proxy" + echo -e " --vimemu: additionally deploy the VIM emulator as a docker container" + echo -e " --elk_stack: additionally deploy an ELK docker stack for event logging" + echo -e " --pla: install the PLA module for placement support" + echo -e " -m : install OSM but only rebuild or pull the specified docker images (NG-UI, NBI, LCM, RO, MON, POL, PLA, KAFKA, MONGO, PROMETHEUS, PROMETHEUS-CADVISOR, KEYSTONE-DB, NONE)" + echo -e " -o : ONLY (un)installs one of the addons (vimemu, elk_stack, k8s_monitor)" + echo -e " -O : Install OSM to an OpenStack infrastructure. is required. If a is used, the clouds.yaml file should be under ~/.config/openstack/ or /etc/openstack/" + echo -e " -N : Public network name required to setup OSM to OpenStack" + echo -e " -f : Public SSH key to use to deploy OSM to OpenStack" + echo -e " -F : Cloud-Init userdata file to deploy OSM to OpenStack" + echo -e " -D use local devops installation path" + echo -e " -w Location to store runtime installation" + echo -e " -t specify osm docker tag (default is latest)" + echo -e " -l: LXD cloud yaml file" + echo -e " -L: LXD credentials yaml file" + echo -e " -K: Specifies the name of the controller to use - The controller must be already bootstrapped" + echo -e " -d use docker registry URL instead of dockerhub" + echo -e " -p set docker proxy URL as part of docker CE configuration" + echo -e " -T specify docker tag for the modules specified with option -m" + echo -e " --nocachelxdimages: do not cache local lxd images, do not create cronjob for that cache (will save installation time, might affect instantiation time)" + echo -e " --nolxd: do not install and configure LXD, allowing unattended installations (assumes LXD is already installed and confifured)" + echo -e " --nodocker: do not install docker, do not initialize a swarm (assumes docker is already installed and a swarm has been initialized)" + echo -e " --nojuju: do not juju, assumes already installed" + echo -e " --nodockerbuild:do not build docker images (use existing locally cached images)" + echo -e " --nohostports: do not expose docker ports to host (useful for creating multiple instances of osm on the same host)" + echo -e " --nohostclient: do not install the osmclient" + echo -e " --uninstall: uninstall OSM: remove the containers and delete NAT rules" + echo -e " --source: install OSM from source code using the latest stable tag" + echo -e " --develop: (deprecated, use '-b master') install OSM from source code using the master branch" + echo -e " --pullimages: pull/run osm images from docker.io/opensourcemano" + echo -e " --k8s_monitor: install the OSM kubernetes monitoring with prometheus and grafana" + echo -e " --volume: create a VM volume when installing to OpenStack" +# echo -e " --reconfigure: reconfigure the modules (DO NOT change NAT rules)" +# echo -e " --update: update to the latest stable release or to the latest commit if using a specific branch" + echo -e " --showopts: print chosen options and exit (only for debugging)" + echo -e " --charmed: Deploy and operate OSM with Charms on k8s" + echo -e " [--bundle ]: Specify with which bundle to deploy OSM with charms (--charmed option)" + echo -e " [--k8s ]: Specify with which kubernetes to deploy OSM with charms (--charmed option)" + echo -e " [--vca ]: Specifies the name of the controller to use - The controller must be already bootstrapped (--charmed option)" + echo -e " [--lxd ]: Takes a YAML file as a parameter with the LXD Cloud information (--charmed option)" + echo -e " [--lxd-cred ]: Takes a YAML file as a parameter with the LXD Credentials information (--charmed option)" + echo -e " [--microstack]: Installs microstack as a vim. (--charmed option)" + echo -e " [--overlay]: Add an overlay to override some defaults of the default bundle (--charmed option)" + echo -e " [--ha]: Installs High Availability bundle. (--charmed option)" + echo -e " [--tag]: Docker image tag. (--charmed option)" + echo -e " [--registry]: Docker registry with optional credentials as user:pass@hostname:port (--charmed option)" + +} + +# takes a juju/accounts.yaml file and returns the password specific +# for a controller. I wrote this using only bash tools to minimize +# additions of other packages +function parse_juju_password { + password_file="${HOME}/.local/share/juju/accounts.yaml" + local controller_name=$1 + local s='[[:space:]]*' w='[a-zA-Z0-9_-]*' fs=$(echo @|tr @ '\034') + sed -ne "s|^\($s\):|\1|" \ + -e "s|^\($s\)\($w\)$s:$s[\"']\(.*\)[\"']$s\$|\1$fs\2$fs\3|p" \ + -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" $password_file | + awk -F$fs -v controller=$controller_name '{ + indent = length($1)/2; + vname[indent] = $2; + for (i in vname) {if (i > indent) {delete vname[i]}} + if (length($3) > 0) { + vn=""; for (i=0; i/dev/null; then + echo -e " Not installed.\nInstalling iptables-persistent requires root privileges" + echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections + echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections + sudo apt-get -yq install iptables-persistent + fi +} + +#Configure NAT rules, based on the current IP addresses of containers +function nat(){ + check_install_iptables_persistent + + echo -e "\nConfiguring NAT rules" + echo -e " Required root privileges" + sudo $OSM_DEVOPS/installers/nat_osm +} + +function FATAL(){ + echo "FATAL error: Cannot install OSM due to \"$1\"" + exit 1 +} + +function update_juju_images(){ + crontab -l | grep update-juju-lxc-images || (crontab -l 2>/dev/null; echo "0 4 * * 6 $USER ${OSM_DEVOPS}/installers/update-juju-lxc-images --xenial --bionic") | crontab - + ${OSM_DEVOPS}/installers/update-juju-lxc-images --xenial --bionic +} + +function install_lxd() { + # Apply sysctl production values for optimal performance + sudo cp ${OSM_DEVOPS}/installers/60-lxd-production.conf /etc/sysctl.d/60-lxd-production.conf + sudo sysctl --system + + # Install LXD snap + sudo apt-get remove --purge -y liblxc1 lxc-common lxcfs lxd lxd-client + sudo snap install lxd + + # Configure LXD + sudo usermod -a -G lxd `whoami` + cat ${OSM_DEVOPS}/installers/lxd-preseed.conf | sed 's/^config: {}/config:\n core.https_address: '$DEFAULT_IP':8443/' | sg lxd -c "lxd init --preseed" + sg lxd -c "lxd waitready" + DEFAULT_INTERFACE=$(ip route list|awk '$1=="default" {print $5; exit}') + [ -z "$DEFAULT_INTERFACE" ] && DEFAULT_INTERFACE=$(route -n |awk '$1~/^0.0.0.0/ {print $8; exit}') + DEFAULT_MTU=$(ip addr show $DEFAULT_INTERFACE | perl -ne 'if (/mtu\s(\d+)/) {print $1;}') + sg lxd -c "lxc profile device set default eth0 mtu $DEFAULT_MTU" + sg lxd -c "lxc network set lxdbr0 bridge.mtu $DEFAULT_MTU" + #sudo systemctl stop lxd-bridge + #sudo systemctl --system daemon-reload + #sudo systemctl enable lxd-bridge + #sudo systemctl start lxd-bridge +} + +function ask_user(){ + # ask to the user and parse a response among 'y', 'yes', 'n' or 'no'. Case insensitive + # Params: $1 text to ask; $2 Action by default, can be 'y' for yes, 'n' for no, other or empty for not allowed + # Return: true(0) if user type 'yes'; false (1) if user type 'no' + read -e -p "$1" USER_CONFIRMATION + while true ; do + [ -z "$USER_CONFIRMATION" ] && [ "$2" == 'y' ] && return 0 + [ -z "$USER_CONFIRMATION" ] && [ "$2" == 'n' ] && return 1 + [ "${USER_CONFIRMATION,,}" == "yes" ] || [ "${USER_CONFIRMATION,,}" == "y" ] && return 0 + [ "${USER_CONFIRMATION,,}" == "no" ] || [ "${USER_CONFIRMATION,,}" == "n" ] && return 1 + read -e -p "Please type 'yes' or 'no': " USER_CONFIRMATION + done +} + +function install_osmclient(){ + CLIENT_RELEASE=${RELEASE#"-R "} + CLIENT_REPOSITORY_KEY="OSM%20ETSI%20Release%20Key.gpg" + CLIENT_REPOSITORY=${REPOSITORY#"-r "} + CLIENT_REPOSITORY_BASE=${REPOSITORY_BASE#"-u "} + key_location=$CLIENT_REPOSITORY_BASE/$CLIENT_RELEASE/$CLIENT_REPOSITORY_KEY + curl $key_location | sudo apt-key add - + sudo add-apt-repository -y "deb [arch=amd64] $CLIENT_REPOSITORY_BASE/$CLIENT_RELEASE $CLIENT_REPOSITORY osmclient IM" + sudo apt-get update + sudo apt-get install -y python3-pip + sudo -H LC_ALL=C python3 -m pip install -U pip + sudo -H LC_ALL=C python3 -m pip install -U python-magic pyangbind verboselogs + sudo apt-get install -y python3-osm-im python3-osmclient + if [ -f /usr/lib/python3/dist-packages/osm_im/requirements.txt ]; then + python3 -m pip install -r /usr/lib/python3/dist-packages/osm_im/requirements.txt + fi + if [ -f /usr/lib/python3/dist-packages/osmclient/requirements.txt ]; then + sudo apt-get install -y libcurl4-openssl-dev libssl-dev + python3 -m pip install -r /usr/lib/python3/dist-packages/osmclient/requirements.txt + fi + #sed 's,OSM_SOL005=[^$]*,OSM_SOL005=True,' -i ${HOME}/.bashrc + #echo 'export OSM_HOSTNAME=localhost' >> ${HOME}/.bashrc + #echo 'export OSM_SOL005=True' >> ${HOME}/.bashrc + [ -z "$INSTALL_LIGHTWEIGHT" ] && export OSM_HOSTNAME=`lxc list | awk '($2=="SO-ub"){print $6}'` + [ -z "$INSTALL_LIGHTWEIGHT" ] && export OSM_RO_HOSTNAME=`lxc list | awk '($2=="RO"){print $6}'` + echo -e "\nOSM client installed" + if [ -z "$INSTALL_LIGHTWEIGHT" ]; then + echo -e "You might be interested in adding the following OSM client env variables to your .bashrc file:" + echo " export OSM_HOSTNAME=${OSM_HOSTNAME}" + echo " export OSM_RO_HOSTNAME=${OSM_RO_HOSTNAME}" + else + echo -e "OSM client assumes that OSM host is running in localhost (127.0.0.1)." + echo -e "In case you want to interact with a different OSM host, you will have to configure this env variable in your .bashrc file:" + echo " export OSM_HOSTNAME=" + fi + return 0 +} + +function install_prometheus_nodeexporter(){ + if (systemctl -q is-active node_exporter) + then + echo "Node Exporter is already running." + else + echo "Node Exporter is not active, installing..." + if getent passwd node_exporter > /dev/null 2>&1; then + echo "node_exporter user exists" + else + echo "Creating user node_exporter" + sudo useradd --no-create-home --shell /bin/false node_exporter + fi + wget -q https://github.com/prometheus/node_exporter/releases/download/v$PROMETHEUS_NODE_EXPORTER_TAG/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64.tar.gz -P /tmp/ + sudo tar -C /tmp -xf /tmp/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64.tar.gz + sudo cp /tmp/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64/node_exporter /usr/local/bin + sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter + sudo rm -rf /tmp/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64* + sudo cp ${OSM_DEVOPS}/installers/docker/prometheus_exporters/node_exporter.service /etc/systemd/system/node_exporter.service + sudo systemctl daemon-reload + sudo systemctl restart node_exporter + sudo systemctl enable node_exporter + echo "Node Exporter has been activated in this host." + fi + return 0 +} + +function uninstall_prometheus_nodeexporter(){ + sudo systemctl stop node_exporter + sudo systemctl disable node_exporter + sudo rm /etc/systemd/system/node_exporter.service + sudo systemctl daemon-reload + sudo userdel node_exporter + sudo rm /usr/local/bin/node_exporter + return 0 +} + +function install_docker_ce() { + # installs and configures Docker CE + echo "Installing Docker CE ..." + sudo apt-get -qq update + sudo apt-get install -y apt-transport-https ca-certificates software-properties-common + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - + sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" + sudo apt-get -qq update + sudo apt-get install -y docker-ce + echo "Adding user to group 'docker'" + sudo groupadd -f docker + sudo usermod -aG docker $USER + sleep 2 + sudo service docker restart + echo "... restarted Docker service" + if [ -n "${DOCKER_PROXY_URL}" ]; then + echo "Configuring docker proxy ..." + if [ -f /etc/docker/daemon.json ]; then + if grep -q registry-mirrors /etc/docker/daemon.json; then + sudo sed -i "s|registry-mirrors.*|registry-mirrors\": [\"${DOCKER_PROXY_URL}\"] |" /etc/docker/daemon.json + else + sudo sed -i "s|{|{\n \"registry-mirrors\": [\"${DOCKER_PROXY_URL}\"],|" /etc/docker/daemon.json + fi + else + sudo bash -c "cat << EOF > /etc/docker/daemon.json +{ + \"registry-mirrors\": [\"${DOCKER_PROXY_URL}\"] +} +EOF" + fi + sudo systemctl daemon-reload + sudo service docker restart + echo "... restarted Docker service again" + fi + sg docker -c "docker version" || FATAL "Docker installation failed" + echo "... Docker CE installation done" + return 0 +} + +function install_docker_compose() { + # installs and configures docker-compose + echo "Installing Docker Compose ..." + sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose + sudo chmod +x /usr/local/bin/docker-compose + echo "... Docker Compose installation done" +} + +function install_juju() { + echo "Installing juju" + sudo snap install juju --classic --channel=$JUJU_VERSION/stable + [[ ":$PATH": != *":/snap/bin:"* ]] && PATH="/snap/bin:${PATH}" + [ -n "$INSTALL_NOCACHELXDIMAGES" ] || update_juju_images + echo "Finished installation of juju" + return 0 +} + +function juju_createcontroller() { + if ! juju show-controller $OSM_STACK_NAME &> /dev/null; then + # Not found created, create the controller + sudo usermod -a -G lxd ${USER} + sg lxd -c "juju bootstrap --bootstrap-series=xenial --agent-version=$JUJU_AGENT_VERSION $OSM_VCA_CLOUDNAME $OSM_STACK_NAME" + fi + [ $(juju controllers | awk "/^${OSM_STACK_NAME}[\*| ]/{print $1}"|wc -l) -eq 1 ] || FATAL "Juju installation failed" + juju controller-config features=[k8s-operators] +} + +function juju_addk8s() { + cat $HOME/.kube/config | juju add-k8s $OSM_VCA_K8S_CLOUDNAME --controller $OSM_STACK_NAME --storage openebs-hostpath +} + +function juju_createcontroller_k8s(){ + cat $HOME/.kube/config | juju add-k8s $OSM_VCA_K8S_CLOUDNAME --client + juju bootstrap $OSM_VCA_K8S_CLOUDNAME $OSM_STACK_NAME \ + --config controller-service-type=loadbalancer \ + --agent-version=$JUJU_AGENT_VERSION +} + + +function juju_addlxd_cloud(){ + mkdir -p /tmp/.osm + OSM_VCA_CLOUDNAME="lxd-cloud" + LXDENDPOINT=$DEFAULT_IP + LXD_CLOUD=/tmp/.osm/lxd-cloud.yaml + LXD_CREDENTIALS=/tmp/.osm/lxd-credentials.yaml + + cat << EOF > $LXD_CLOUD +clouds: + $OSM_VCA_CLOUDNAME: + type: lxd + auth-types: [certificate] + endpoint: "https://$LXDENDPOINT:8443" + config: + ssl-hostname-verification: false +EOF + openssl req -nodes -new -x509 -keyout /tmp/.osm/client.key -out /tmp/.osm/client.crt -days 365 -subj "/C=FR/ST=Nice/L=Nice/O=ETSI/OU=OSM/CN=osm.etsi.org" + local server_cert=`cat /var/snap/lxd/common/lxd/server.crt | sed 's/^/ /'` + local client_cert=`cat /tmp/.osm/client.crt | sed 's/^/ /'` + local client_key=`cat /tmp/.osm/client.key | sed 's/^/ /'` + + cat << EOF > $LXD_CREDENTIALS +credentials: + $OSM_VCA_CLOUDNAME: + lxd-cloud: + auth-type: certificate + server-cert: | +$server_cert + client-cert: | +$client_cert + client-key: | +$client_key +EOF + lxc config trust add local: /tmp/.osm/client.crt + juju add-cloud -c $OSM_STACK_NAME $OSM_VCA_CLOUDNAME $LXD_CLOUD --force + juju add-credential -c $OSM_STACK_NAME $OSM_VCA_CLOUDNAME -f $LXD_CREDENTIALS + sg lxd -c "lxd waitready" + juju controller-config features=[k8s-operators] +} + + +function juju_createproxy() { + check_install_iptables_persistent + + if ! sudo iptables -t nat -C PREROUTING -p tcp -m tcp -d $DEFAULT_IP --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST; then + sudo iptables -t nat -A PREROUTING -p tcp -m tcp -d $DEFAULT_IP --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST + sudo netfilter-persistent save + fi +} + +function docker_login() { + echo "Docker login" + sg docker -c "docker login -u ${DOCKER_REGISTRY_USER} -p ${DOCKER_REGISTRY_PASSWORD}" +} + +function generate_docker_images() { + echo "Pulling and generating docker images" + [ -n "${DOCKER_REGISTRY_URL}" ] && docker_login + + echo "Pulling docker images" + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q KAFKA ; then + sg docker -c "docker pull wurstmeister/zookeeper" || FATAL "cannot get zookeeper docker image" + sg docker -c "docker pull wurstmeister/kafka:${KAFKA_TAG}" || FATAL "cannot get kafka docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q MONGO ; then + sg docker -c "docker pull mongo" || FATAL "cannot get mongo docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q PROMETHEUS ; then + sg docker -c "docker pull prom/prometheus:${PROMETHEUS_TAG}" || FATAL "cannot get prometheus docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q PROMETHEUS-CADVISOR ; then + sg docker -c "docker pull google/cadvisor:${PROMETHEUS_CADVISOR_TAG}" || FATAL "cannot get prometheus cadvisor docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q GRAFANA ; then + sg docker -c "docker pull grafana/grafana:${GRAFANA_TAG}" || FATAL "cannot get grafana docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q NBI || echo $TO_REBUILD | grep -q KEYSTONE-DB ; then + sg docker -c "docker pull mariadb:${KEYSTONEDB_TAG}" || FATAL "cannot get keystone-db docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q RO ; then + sg docker -c "docker pull mysql:5" || FATAL "cannot get mysql docker image" + fi + + if [ -n "$PULL_IMAGES" ]; then + echo "Pulling OSM docker images" + for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA osmclient; do + module_lower=${module,,} + if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then + continue + fi + module_tag="${OSM_DOCKER_TAG}" + if [ -n "${MODULE_DOCKER_TAG}" ] && echo $TO_REBUILD | grep -q $module ; then + module_tag="${MODULE_DOCKER_TAG}" + fi + echo "Pulling ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag} docker image" + sg docker -c "docker pull ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag}" || FATAL "cannot pull $module docker image" + done + else + _build_from=$COMMIT_ID + [ -z "$_build_from" ] && _build_from="latest" + echo "OSM Docker images generated from $_build_from" + + for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA; do + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q ${module} ; then + module_lower=${module,,} + if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then + continue + fi + git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/$module + git -C ${LWTEMPDIR}/${module} checkout ${COMMIT_ID} + sg docker -c "docker build ${LWTEMPDIR}/${module} -f ${LWTEMPDIR}/${module}/docker/Dockerfile -t ${DOCKER_USER}/${module_lower} --no-cache" || FATAL "cannot build ${module} docker image" + fi + done + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q osmclient; then + BUILD_ARGS+=(--build-arg REPOSITORY="$REPOSITORY") + BUILD_ARGS+=(--build-arg RELEASE="$RELEASE") + BUILD_ARGS+=(--build-arg REPOSITORY_KEY="$REPOSITORY_KEY") + BUILD_ARGS+=(--build-arg REPOSITORY_BASE="$REPOSITORY_BASE") + sg docker -c "docker build -t ${DOCKER_USER}/osmclient ${BUILD_ARGS[@]} -f $OSM_DEVOPS/docker/osmclient ." + fi + echo "Finished generation of docker images" + fi + + echo "Finished pulling and generating docker images" +} + +function cmp_overwrite() { + file1="$1" + file2="$2" + if ! $(cmp "${file1}" "${file2}" >/dev/null 2>&1); then + if [ -f "${file2}" ]; then + ask_user "The file ${file2} already exists. Overwrite (y/N)? " n && cp -b ${file1} ${file2} + else + cp -b ${file1} ${file2} + fi + fi +} + +function generate_docker_compose_files() { + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/docker-compose.yaml $OSM_DOCKER_WORK_DIR/docker-compose.yaml + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/docker-compose-ngui.yaml $OSM_DOCKER_WORK_DIR/docker-compose-ui.yaml + if [ -n "$INSTALL_PLA" ]; then + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/osm_pla/docker-compose.yaml $OSM_DOCKER_WORK_DIR/osm_pla/docker-compose.yaml + fi +} + +function generate_k8s_manifest_files() { + #Kubernetes resources + $WORKDIR_SUDO cp -bR ${OSM_DEVOPS}/installers/docker/osm_pods $OSM_DOCKER_WORK_DIR + $WORKDIR_SUDO rm -f $OSM_K8S_WORK_DIR/mongo.yaml +} + +function generate_prometheus_grafana_files() { + [ -n "$KUBERNETES" ] && return + # Prometheus files + $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/prometheus + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/prometheus/prometheus.yml $OSM_DOCKER_WORK_DIR/prometheus/prometheus.yml + + # Grafana files + $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/grafana + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/dashboards-osm.yml $OSM_DOCKER_WORK_DIR/grafana/dashboards-osm.yml + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/datasource-prometheus.yml $OSM_DOCKER_WORK_DIR/grafana/datasource-prometheus.yml + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/osm-sample-dashboard.json $OSM_DOCKER_WORK_DIR/grafana/osm-sample-dashboard.json + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/osm-system-dashboard.json $OSM_DOCKER_WORK_DIR/grafana/osm-system-dashboard.json + + # Prometheus Exporters files + $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/prometheus_exporters + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/prometheus_exporters/node_exporter.service $OSM_DOCKER_WORK_DIR/prometheus_exporters/node_exporter.service +} + +function generate_docker_env_files() { + echo "Doing a backup of existing env files" + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/keystone-db.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/keystone.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/lcm.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/mon.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/nbi.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/pol.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/ro-db.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/ro.env{,~} + + echo "Generating docker env files" + # LCM + if [ ! -f $OSM_DOCKER_WORK_DIR/lcm.env ]; then + echo "OSMLCM_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_HOST" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_HOST=${OSM_VCA_HOST}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_HOST.*|OSMLCM_VCA_HOST=$OSM_VCA_HOST|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_SECRET" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_SECRET=${OSM_VCA_SECRET}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_SECRET.*|OSMLCM_VCA_SECRET=$OSM_VCA_SECRET|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_PUBKEY" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_PUBKEY=${OSM_VCA_PUBKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_PUBKEY.*|OSMLCM_VCA_PUBKEY=${OSM_VCA_PUBKEY}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_CACERT" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_CACERT=${OSM_VCA_CACERT}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_CACERT.*|OSMLCM_VCA_CACERT=${OSM_VCA_CACERT}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if [ -n "$OSM_VCA_APIPROXY" ]; then + if ! grep -Fq "OSMLCM_VCA_APIPROXY" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_APIPROXY.*|OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + fi + + if ! grep -Fq "OSMLCM_VCA_ENABLEOSUPGRADE" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "# OSMLCM_VCA_ENABLEOSUPGRADE=false" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_APTMIRROR" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "# OSMLCM_VCA_APTMIRROR=http://archive.ubuntu.com/ubuntu/" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_CLOUD" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_CLOUD=${OSM_VCA_CLOUDNAME}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_CLOUD.*|OSMLCM_VCA_CLOUD=${OSM_VCA_CLOUDNAME}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_K8S_CLOUD" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_K8S_CLOUD=${OSM_VCA_K8S_CLOUDNAME}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_K8S_CLOUD.*|OSMLCM_VCA_K8S_CLOUD=${OSM_VCA_K8S_CLOUDNAME}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + # RO + MYSQL_ROOT_PASSWORD=$(generate_secret) + if [ ! -f $OSM_DOCKER_WORK_DIR/ro-db.env ]; then + echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/ro-db.env + fi + if [ ! -f $OSM_DOCKER_WORK_DIR/ro.env ]; then + echo "RO_DB_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/ro.env + fi + if ! grep -Fq "OSMRO_DATABASE_COMMONKEY" $OSM_DOCKER_WORK_DIR/ro.env; then + echo "OSMRO_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/ro.env + fi + + # Keystone + KEYSTONE_DB_PASSWORD=$(generate_secret) + SERVICE_PASSWORD=$(generate_secret) + if [ ! -f $OSM_DOCKER_WORK_DIR/keystone-db.env ]; then + echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/keystone-db.env + fi + if [ ! -f $OSM_DOCKER_WORK_DIR/keystone.env ]; then + echo "ROOT_DB_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/keystone.env + echo "KEYSTONE_DB_PASSWORD=${KEYSTONE_DB_PASSWORD}" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/keystone.env + echo "SERVICE_PASSWORD=${SERVICE_PASSWORD}" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/keystone.env + fi + + # NBI + if [ ! -f $OSM_DOCKER_WORK_DIR/nbi.env ]; then + echo "OSMNBI_AUTHENTICATION_SERVICE_PASSWORD=${SERVICE_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/nbi.env + echo "OSMNBI_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/nbi.env + fi + + # MON + if [ ! -f $OSM_DOCKER_WORK_DIR/mon.env ]; then + echo "OSMMON_KEYSTONE_SERVICE_PASSWORD=${SERVICE_PASSWORD}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + echo "OSMMON_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + echo "OSMMON_SQL_DATABASE_URI=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/mon" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OS_NOTIFIER_URI" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OS_NOTIFIER_URI=http://${DEFAULT_IP}:8662" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OS_NOTIFIER_URI.*|OS_NOTIFIER_URI=http://$DEFAULT_IP:8662|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_HOST" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_HOST=${OSM_VCA_HOST}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_HOST.*|OSMMON_VCA_HOST=$OSM_VCA_HOST|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_SECRET" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_SECRET=${OSM_VCA_SECRET}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_SECRET.*|OSMMON_VCA_SECRET=$OSM_VCA_SECRET|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_CACERT" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_CACERT=${OSM_VCA_CACERT}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_CACERT.*|OSMMON_VCA_CACERT=${OSM_VCA_CACERT}|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + + # POL + if [ ! -f $OSM_DOCKER_WORK_DIR/pol.env ]; then + echo "OSMPOL_SQL_DATABASE_URI=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/pol" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/pol.env + fi + + echo "Finished generation of docker env files" +} + +function generate_osmclient_script () { + echo "docker run -ti --network net${OSM_STACK_NAME} ${DOCKER_REGISTRY_URL}${DOCKER_USER}/osmclient:${OSM_DOCKER_TAG}" | $WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/osm + $WORKDIR_SUDO chmod +x "$OSM_DOCKER_WORK_DIR/osm" + echo "osmclient sidecar container can be found at: $OSM_DOCKER_WORK_DIR/osm" +} + +#installs kubernetes packages +function install_kube() { + sudo apt-get update && sudo apt-get install -y apt-transport-https + curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - + sudo add-apt-repository "deb https://apt.kubernetes.io/ kubernetes-xenial main" + sudo apt-get update + echo "Installing Kubernetes Packages ..." + sudo apt-get install -y kubelet=1.15.0-00 kubeadm=1.15.0-00 kubectl=1.15.0-00 + sudo apt-mark hold kubelet kubeadm kubectl +} + +#initializes kubernetes control plane +function init_kubeadm() { + sudo swapoff -a + sudo sed -i.bak '/.*none.*swap/s/^\(.*\)$/#\1/g' /etc/fstab + sudo kubeadm init --config $1 + sleep 5 +} + +function kube_config_dir() { + [ ! -d $K8S_MANIFEST_DIR ] && FATAL "Cannot Install Kubernetes" + mkdir -p $HOME/.kube + sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config +} + +function install_k8s_storageclass() { + echo "Installing OpenEBS" + kubectl create ns openebs + helm repo add openebs https://openebs.github.io/charts + helm repo update + helm install --namespace openebs openebs openebs/openebs --version 1.12.0 + helm ls -n openebs + local storageclass_timeout=400 + local counter=0 + local storageclass_ready="" + echo "Waiting for storageclass" + while (( counter < storageclass_timeout )) + do + kubectl get storageclass openebs-hostpath &> /dev/null + + if [ $? -eq 0 ] ; then + echo "Storageclass available" + storageclass_ready="y" + break + else + counter=$((counter + 15)) + sleep 15 + fi + done + [ -n "$storageclass_ready" ] || FATAL "Storageclass not ready after $storageclass_timeout seconds. Cannot install openebs" + kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' +} + +function install_k8s_metallb() { + METALLB_IP_RANGE=$DEFAULT_IP-$DEFAULT_IP + cat ${OSM_DEVOPS}/installers/k8s/metallb/metallb.yaml | kubectl apply -f - + echo "apiVersion: v1 +kind: ConfigMap +metadata: + namespace: metallb-system + name: config +data: + config: | + address-pools: + - name: default + protocol: layer2 + addresses: + - $METALLB_IP_RANGE" | kubectl apply -f - +} +#deploys flannel as daemonsets +function deploy_cni_provider() { + CNI_DIR="$(mktemp -d -q --tmpdir "flannel.XXXXXX")" + trap 'rm -rf "${CNI_DIR}"' EXIT + wget -q https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml -P $CNI_DIR + kubectl apply -f $CNI_DIR + [ $? -ne 0 ] && FATAL "Cannot Install Flannel" +} + +#creates secrets from env files which will be used by containers +function kube_secrets(){ + kubectl create ns $OSM_STACK_NAME + kubectl create secret generic lcm-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/lcm.env + kubectl create secret generic mon-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/mon.env + kubectl create secret generic nbi-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/nbi.env + kubectl create secret generic ro-db-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/ro-db.env + kubectl create secret generic ro-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/ro.env + kubectl create secret generic keystone-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/keystone.env + kubectl create secret generic pol-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/pol.env +} + +#taints K8s master node +function taint_master_node() { + K8S_MASTER=$(kubectl get nodes | awk '$3~/master/'| awk '{print $1}') + kubectl taint node $K8S_MASTER node-role.kubernetes.io/master:NoSchedule- + sleep 5 +} + +#deploys osm pods and services +function deploy_osm_services() { + kubectl apply -n $OSM_STACK_NAME -f $OSM_K8S_WORK_DIR +} + +#deploy charmed services +function deploy_charmed_services() { + juju add-model $OSM_STACK_NAME $OSM_VCA_K8S_CLOUDNAME + juju deploy ch:mongodb-k8s -m $OSM_STACK_NAME +} + +function deploy_osm_pla_service() { + # corresponding to namespace_vol + $WORKDIR_SUDO sed -i "s#path: /var/lib/osm#path: $OSM_NAMESPACE_VOL#g" $OSM_DOCKER_WORK_DIR/osm_pla/pla.yaml + # corresponding to deploy_osm_services + kubectl apply -n $OSM_STACK_NAME -f $OSM_DOCKER_WORK_DIR/osm_pla +} + +#Install Helm v3 +function install_helm() { + helm > /dev/null 2>&1 + if [ $? != 0 ] ; then + # Helm is not installed. Install helm + echo "Helm is not installed, installing ..." + curl https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz --output helm-v3.6.3.tar.gz + tar -zxvf helm-v3.6.3.tar.gz + sudo mv linux-amd64/helm /usr/local/bin/helm + rm -r linux-amd64 + rm helm-v3.6.3.tar.gz + helm repo add stable https://charts.helm.sh/stable + helm repo update + fi +} + +function parse_yaml() { + TAG=$1 + shift + services=$@ + for module in $services; do + if [ "$module" == "pla" ]; then + if [ -n "$INSTALL_PLA" ]; then + echo "Updating K8s manifest file from opensourcemano\/${module}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${module}:${TAG}" + $WORKDIR_SUDO sed -i "s#opensourcemano/pla:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/pla:${TAG}#g" ${OSM_DOCKER_WORK_DIR}/osm_pla/pla.yaml + fi + else + echo "Updating K8s manifest file from opensourcemano\/${module}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${module}:${TAG}" + $WORKDIR_SUDO sed -i "s#opensourcemano/${module}:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module}:${TAG}#g" ${OSM_K8S_WORK_DIR}/${module}.yaml + fi + done +} + +function update_manifest_files() { + osm_services="nbi lcm ro pol mon ng-ui keystone pla" + list_of_services="" + for module in $osm_services; do + module_upper="${module^^}" + if ! echo $TO_REBUILD | grep -q $module_upper ; then + list_of_services="$list_of_services $module" + fi + done + if [ ! "$OSM_DOCKER_TAG" == "10" ]; then + parse_yaml $OSM_DOCKER_TAG $list_of_services + fi + if [ -n "$MODULE_DOCKER_TAG" ]; then + parse_yaml $MODULE_DOCKER_TAG $list_of_services_to_rebuild + fi +} + +function namespace_vol() { + osm_services="nbi lcm ro pol mon kafka mysql prometheus" + for osm in $osm_services; do + $WORKDIR_SUDO sed -i "s#path: /var/lib/osm#path: $OSM_NAMESPACE_VOL#g" $OSM_K8S_WORK_DIR/$osm.yaml + done +} + +function init_docker_swarm() { + if [ "${DEFAULT_MTU}" != "1500" ]; then + DOCKER_NETS=`sg docker -c "docker network list" | awk '{print $2}' | egrep -v "^ID$" | paste -d " " -s` + DOCKER_GW_NET=`sg docker -c "docker network inspect ${DOCKER_NETS}" | grep Subnet | awk -F\" '{print $4}' | egrep "^172" | sort -u | tail -1 | awk -F\. '{if ($2 != 255) print $1"."$2+1"."$3"."$4; else print "-1";}'` + sg docker -c "docker network create --subnet ${DOCKER_GW_NET} --opt com.docker.network.bridge.name=docker_gwbridge --opt com.docker.network.bridge.enable_icc=false --opt com.docker.network.bridge.enable_ip_masquerade=true --opt com.docker.network.driver.mtu=${DEFAULT_MTU} docker_gwbridge" + fi + sg docker -c "docker swarm init --advertise-addr ${DEFAULT_IP}" + return 0 +} + +function create_docker_network() { + echo "creating network" + sg docker -c "docker network create --driver=overlay --attachable --opt com.docker.network.driver.mtu=${DEFAULT_MTU} net${OSM_STACK_NAME}" + echo "creating network DONE" +} + +function deploy_lightweight() { + + echo "Deploying lightweight build" + OSM_NBI_PORT=9999 + OSM_RO_PORT=9090 + OSM_KEYSTONE_PORT=5000 + OSM_UI_PORT=80 + OSM_MON_PORT=8662 + OSM_PROM_PORT=9090 + OSM_PROM_CADVISOR_PORT=8080 + OSM_PROM_HOSTPORT=9091 + OSM_GRAFANA_PORT=3000 + [ -n "$INSTALL_ELK" ] && OSM_ELK_PORT=5601 + #[ -n "$INSTALL_PERFMON" ] && OSM_PM_PORT=3000 + + if [ -n "$NO_HOST_PORTS" ]; then + OSM_PORTS+=(OSM_NBI_PORTS=$OSM_NBI_PORT) + OSM_PORTS+=(OSM_RO_PORTS=$OSM_RO_PORT) + OSM_PORTS+=(OSM_KEYSTONE_PORTS=$OSM_KEYSTONE_PORT) + OSM_PORTS+=(OSM_UI_PORTS=$OSM_UI_PORT) + OSM_PORTS+=(OSM_MON_PORTS=$OSM_MON_PORT) + OSM_PORTS+=(OSM_PROM_PORTS=$OSM_PROM_PORT) + OSM_PORTS+=(OSM_PROM_CADVISOR_PORTS=$OSM_PROM_CADVISOR_PORT) + OSM_PORTS+=(OSM_GRAFANA_PORTS=$OSM_GRAFANA_PORT) + #[ -n "$INSTALL_PERFMON" ] && OSM_PORTS+=(OSM_PM_PORTS=$OSM_PM_PORT) + [ -n "$INSTALL_ELK" ] && OSM_PORTS+=(OSM_ELK_PORTS=$OSM_ELK_PORT) + else + OSM_PORTS+=(OSM_NBI_PORTS=$OSM_NBI_PORT:$OSM_NBI_PORT) + OSM_PORTS+=(OSM_RO_PORTS=$OSM_RO_PORT:$OSM_RO_PORT) + OSM_PORTS+=(OSM_KEYSTONE_PORTS=$OSM_KEYSTONE_PORT:$OSM_KEYSTONE_PORT) + OSM_PORTS+=(OSM_UI_PORTS=$OSM_UI_PORT:$OSM_UI_PORT) + OSM_PORTS+=(OSM_MON_PORTS=$OSM_MON_PORT:$OSM_MON_PORT) + OSM_PORTS+=(OSM_PROM_PORTS=$OSM_PROM_HOSTPORT:$OSM_PROM_PORT) + OSM_PORTS+=(OSM_PROM_CADVISOR_PORTS=$OSM_PROM_CADVISOR_PORT:$OSM_PROM_CADVISOR_PORT) + OSM_PORTS+=(OSM_GRAFANA_PORTS=$OSM_GRAFANA_PORT:$OSM_GRAFANA_PORT) + #[ -n "$INSTALL_PERFMON" ] && OSM_PORTS+=(OSM_PM_PORTS=$OSM_PM_PORT:$OSM_PM_PORT) + [ -n "$INSTALL_ELK" ] && OSM_PORTS+=(OSM_ELK_PORTS=$OSM_ELK_PORT:$OSM_ELK_PORT) + fi + echo "export ${OSM_PORTS[@]}" | $WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export OSM_NETWORK=net${OSM_STACK_NAME}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export TAG=${OSM_DOCKER_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export DOCKER_USER=${DOCKER_USER}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export KAFKA_TAG=${KAFKA_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export PROMETHEUS_TAG=${PROMETHEUS_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export KEYSTONEDB_TAG=${KEYSTONEDB_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export PROMETHEUS_CADVISOR_TAG=${PROMETHEUS_CADVISOR_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export GRAFANA_TAG=${GRAFANA_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + + pushd $OSM_DOCKER_WORK_DIR + if [ -n "$INSTALL_PLA" ]; then + track deploy_osm_pla + sg docker -c ". ./osm_ports.sh; docker stack deploy -c $OSM_DOCKER_WORK_DIR/docker-compose.yaml -c $OSM_DOCKER_WORK_DIR/docker-compose-ui.yaml -c $OSM_DOCKER_WORK_DIR/osm_pla/docker-compose.yaml $OSM_STACK_NAME" + else + sg docker -c ". ./osm_ports.sh; docker stack deploy -c $OSM_DOCKER_WORK_DIR/docker-compose.yaml -c $OSM_DOCKER_WORK_DIR/docker-compose-ui.yaml $OSM_STACK_NAME" + fi + popd + + echo "Finished deployment of lightweight build" +} + +function deploy_elk() { + echo "Pulling docker images for ELK" + sg docker -c "docker pull docker.elastic.co/elasticsearch/elasticsearch-oss:${ELASTIC_VERSION}" || FATAL "cannot get elasticsearch docker image" + sg docker -c "docker pull docker.elastic.co/beats/metricbeat:${ELASTIC_VERSION}" || FATAL "cannot get metricbeat docker image" + sg docker -c "docker pull docker.elastic.co/beats/filebeat:${ELASTIC_VERSION}" || FATAL "cannot get filebeat docker image" + sg docker -c "docker pull docker.elastic.co/kibana/kibana-oss:${ELASTIC_VERSION}" || FATAL "cannot get kibana docker image" + sg docker -c "docker pull bobrik/curator:${ELASTIC_CURATOR_VERSION}" || FATAL "cannot get curator docker image" + echo "Finished pulling elk docker images" + $WORKDIR_SUDO mkdir -p "$OSM_DOCKER_WORK_DIR/osm_elk" + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/osm_elk/* $OSM_DOCKER_WORK_DIR/osm_elk + remove_stack osm_elk + echo "Deploying ELK stack" + sg docker -c "OSM_NETWORK=net${OSM_STACK_NAME} docker stack deploy -c $OSM_DOCKER_WORK_DIR/osm_elk/docker-compose.yml osm_elk" + echo "Waiting for ELK stack to be up and running" + time=0 + step=5 + timelength=40 + elk_is_up=1 + while [ $time -le $timelength ]; do + if [[ $(curl -f -XGET http://127.0.0.1:5601/status -I 2>/dev/null | grep "HTTP/1.1 200 OK" | wc -l ) -eq 1 ]]; then + elk_is_up=0 + break + fi + sleep $step + time=$((time+step)) + done + if [ $elk_is_up -eq 0 ]; then + echo "ELK is up and running. Trying to create index pattern..." + #Create index pattern + curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/saved_objects/index-pattern/filebeat-*" \ + -d"{\"attributes\":{\"title\":\"filebeat-*\",\"timeFieldName\":\"@timestamp\"}}" 2>/dev/null + #Make it the default index + curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/kibana/settings/defaultIndex" \ + -d"{\"value\":\"filebeat-*\"}" 2>/dev/null + else + echo "Cannot connect to Kibana to create index pattern." + echo "Once Kibana is running, you can use the following instructions to create index pattern:" + echo 'curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/saved_objects/index-pattern/filebeat-*" \ + -d"{\"attributes\":{\"title\":\"filebeat-*\",\"timeFieldName\":\"@timestamp\"}}"' + echo 'curl -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/kibana/settings/defaultIndex" \ + -d"{\"value\":\"filebeat-*\"}"' + fi + echo "Finished deployment of ELK stack" + return 0 +} + +function add_local_k8scluster() { + /usr/bin/osm --all-projects vim-create \ + --name _system-osm-vim \ + --account_type dummy \ + --auth_url http://dummy \ + --user osm --password osm --tenant osm \ + --description "dummy" \ + --config '{management_network_name: mgmt}' + /usr/bin/osm --all-projects k8scluster-add \ + --creds ${HOME}/.kube/config \ + --vim _system-osm-vim \ + --k8s-nets '{"net1": null}' \ + --version '1.15' \ + --description "OSM Internal Cluster" \ + _system-osm-k8s +} + +function install_lightweight() { + track checkingroot + [ "$USER" == "root" ] && FATAL "You are running the installer as root. The installer is prepared to be executed as a normal user with sudo privileges." + track noroot + + if [ -n "$KUBERNETES" ]; then + [ -z "$ASSUME_YES" ] && ! ask_user "The installation will do the following + 1. Install and configure LXD + 2. Install juju + 3. Install docker CE + 4. Disable swap space + 5. Install and initialize Kubernetes + as pre-requirements. + Do you want to proceed (Y/n)? " y && echo "Cancelled!" && exit 1 + + else + [ -z "$ASSUME_YES" ] && ! ask_user "The installation will configure LXD, install juju, install docker CE and init a docker swarm, as pre-requirements. Do you want to proceed (Y/n)? " y && echo "Cancelled!" && exit 1 + fi + track proceed + + echo "Installing lightweight build of OSM" + LWTEMPDIR="$(mktemp -d -q --tmpdir "installosmlight.XXXXXX")" + trap 'rm -rf "${LWTEMPDIR}"' EXIT + DEFAULT_IF=$(ip route list|awk '$1=="default" {print $5; exit}') + [ -z "$DEFAULT_IF" ] && DEFAULT_IF=$(route -n |awk '$1~/^0.0.0.0/ {print $8; exit}') + [ -z "$DEFAULT_IF" ] && FATAL "Not possible to determine the interface with the default route 0.0.0.0" + DEFAULT_IP=`ip -o -4 a s ${DEFAULT_IF} |awk '{split($4,a,"/"); print a[1]}'` + [ -z "$DEFAULT_IP" ] && FATAL "Not possible to determine the IP address of the interface with the default route" + DEFAULT_MTU=$(ip addr show ${DEFAULT_IF} | perl -ne 'if (/mtu\s(\d+)/) {print $1;}') + + # if no host is passed in, we need to install lxd/juju, unless explicilty asked not to + if [ -z "$OSM_VCA_HOST" ] && [ -z "$INSTALL_NOLXD" ] && [ -z "$LXD_CLOUD_FILE" ]; then + need_packages_lw="snapd" + echo -e "Checking required packages: $need_packages_lw" + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "One or several required packages are not installed. Updating apt cache requires root privileges." \ + || sudo apt-get update \ + || FATAL "failed to run apt-get update" + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "Installing $need_packages_lw requires root privileges." \ + || sudo apt-get install -y $need_packages_lw \ + || FATAL "failed to install $need_packages_lw" + install_lxd + fi + + track prereqok + + [ -n "$INSTALL_NODOCKER" ] || (install_docker_ce && track docker_ce) + + echo "Creating folders for installation" + [ ! -d "$OSM_DOCKER_WORK_DIR" ] && $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR + [ ! -d "$OSM_DOCKER_WORK_DIR/osm_pla" -a -n "$INSTALL_PLA" ] && $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/osm_pla + [ -n "$KUBERNETES" ] && $WORKDIR_SUDO cp -b $OSM_DEVOPS/installers/docker/cluster-config.yaml $OSM_DOCKER_WORK_DIR/cluster-config.yaml + + #Installs Kubernetes + if [ -n "$KUBERNETES" ]; then + install_kube + track install_k8s + init_kubeadm $OSM_DOCKER_WORK_DIR/cluster-config.yaml + kube_config_dir + track init_k8s + if [ -n "$INSTALL_K8S_MONITOR" ]; then + # uninstall OSM MONITORING + uninstall_k8s_monitoring + track uninstall_k8s_monitoring + fi + #remove old namespace + remove_k8s_namespace $OSM_STACK_NAME + deploy_cni_provider + taint_master_node + install_helm + track install_helm + install_k8s_storageclass + track k8s_storageclass + install_k8s_metallb + track k8s_metallb + else + #install_docker_compose + [ -n "$INSTALL_NODOCKER" ] || init_docker_swarm + track docker_swarm + fi + + [ -z "$INSTALL_NOJUJU" ] && install_juju + track juju_install + + if [ -z "$OSM_VCA_HOST" ]; then + if [ -z "$CONTROLLER_NAME" ]; then + + if [ -n "$KUBERNETES" ]; then + juju_createcontroller_k8s + juju_addlxd_cloud + else + if [ -n "$LXD_CLOUD_FILE" ]; then + [ -z "$LXD_CRED_FILE" ] && FATAL "The installer needs the LXD credential yaml if the LXD is external" + OSM_VCA_CLOUDNAME="lxd-cloud" + juju add-cloud $OSM_VCA_CLOUDNAME $LXD_CLOUD_FILE --force || juju update-cloud $OSM_VCA_CLOUDNAME --client -f $LXD_CLOUD_FILE + juju add-credential $OSM_VCA_CLOUDNAME -f $LXD_CRED_FILE || juju update-credential $OSM_VCA_CLOUDNAME lxd-cloud-creds -f $LXD_CRED_FILE + fi + juju_createcontroller + juju_createproxy + fi + else + OSM_VCA_CLOUDNAME="lxd-cloud" + if [ -n "$LXD_CLOUD_FILE" ]; then + [ -z "$LXD_CRED_FILE" ] && FATAL "The installer needs the LXD credential yaml if the LXD is external" + juju add-cloud -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME $LXD_CLOUD_FILE --force || juju update-cloud lxd-cloud -c $CONTROLLER_NAME -f $LXD_CLOUD_FILE + juju add-credential -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME -f $LXD_CRED_FILE || juju update-credential lxd-cloud -c $CONTROLLER_NAME -f $LXD_CRED_FILE + else + mkdir -p ~/.osm + cat << EOF > ~/.osm/lxd-cloud.yaml +clouds: + lxd-cloud: + type: lxd + auth-types: [certificate] + endpoint: "https://$DEFAULT_IP:8443" + config: + ssl-hostname-verification: false +EOF + openssl req -nodes -new -x509 -keyout ~/.osm/client.key -out ~/.osm/client.crt -days 365 -subj "/C=FR/ST=Nice/L=Nice/O=ETSI/OU=OSM/CN=osm.etsi.org" + local server_cert=`cat /var/snap/lxd/common/lxd/server.crt | sed 's/^/ /'` + local client_cert=`cat ~/.osm/client.crt | sed 's/^/ /'` + local client_key=`cat ~/.osm/client.key | sed 's/^/ /'` + cat << EOF > ~/.osm/lxd-credentials.yaml +credentials: + lxd-cloud: + lxd-cloud: + auth-type: certificate + server-cert: | +$server_cert + client-cert: | +$client_cert + client-key: | +$client_key +EOF + lxc config trust add local: ~/.osm/client.crt + juju add-cloud -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME ~/.osm/lxd-cloud.yaml --force || juju update-cloud lxd-cloud -c $CONTROLLER_NAME -f ~/.osm/lxd-cloud.yaml + juju add-credential -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME -f ~/.osm/lxd-credentials.yaml || juju update-credential lxd-cloud -c $CONTROLLER_NAME -f ~/.osm/lxd-credentials.yaml + fi + fi + [ -z "$CONTROLLER_NAME" ] && OSM_VCA_HOST=`sg lxd -c "juju show-controller $OSM_STACK_NAME"|grep api-endpoints|awk -F\' '{print $2}'|awk -F\: '{print $1}'` + [ -n "$CONTROLLER_NAME" ] && OSM_VCA_HOST=`juju show-controller $CONTROLLER_NAME |grep api-endpoints|awk -F\' '{print $2}'|awk -F\: '{print $1}'` + [ -z "$OSM_VCA_HOST" ] && FATAL "Cannot obtain juju controller IP address" + fi + track juju_controller + + if [ -z "$OSM_VCA_SECRET" ]; then + [ -z "$CONTROLLER_NAME" ] && OSM_VCA_SECRET=$(parse_juju_password $OSM_STACK_NAME) + [ -n "$CONTROLLER_NAME" ] && OSM_VCA_SECRET=$(parse_juju_password $CONTROLLER_NAME) + [ -z "$OSM_VCA_SECRET" ] && FATAL "Cannot obtain juju secret" + fi + if [ -z "$OSM_VCA_PUBKEY" ]; then + OSM_VCA_PUBKEY=$(cat $HOME/.local/share/juju/ssh/juju_id_rsa.pub) + [ -z "$OSM_VCA_PUBKEY" ] && FATAL "Cannot obtain juju public key" + fi + if [ -z "$OSM_VCA_CACERT" ]; then + [ -z "$CONTROLLER_NAME" ] && OSM_VCA_CACERT=$(juju controllers --format json | jq -r --arg controller $OSM_STACK_NAME '.controllers[$controller]["ca-cert"]' | base64 | tr -d \\n) + [ -n "$CONTROLLER_NAME" ] && OSM_VCA_CACERT=$(juju controllers --format json | jq -r --arg controller $CONTROLLER_NAME '.controllers[$controller]["ca-cert"]' | base64 | tr -d \\n) + [ -z "$OSM_VCA_CACERT" ] && FATAL "Cannot obtain juju CA certificate" + fi + + # Set OSM_VCA_APIPROXY only when it is not a k8s installation + if [ -z "$KUBERNETES" ]; then + if [ -z "$OSM_VCA_APIPROXY" ]; then + OSM_VCA_APIPROXY=$DEFAULT_IP + [ -z "$OSM_VCA_APIPROXY" ] && FATAL "Cannot obtain juju api proxy" + fi + juju_createproxy + fi + track juju + + if [ -z "$OSM_DATABASE_COMMONKEY" ]; then + OSM_DATABASE_COMMONKEY=$(generate_secret) + [ -z "OSM_DATABASE_COMMONKEY" ] && FATAL "Cannot generate common db secret" + fi + + # Deploy OSM services + [ -z "$DOCKER_NOBUILD" ] && generate_docker_images + track docker_build + + if [ -n "$KUBERNETES" ]; then + generate_k8s_manifest_files + else + generate_docker_compose_files + fi + track manifest_files + generate_prometheus_grafana_files + generate_docker_env_files + track env_files + + if [ -n "$KUBERNETES" ]; then + deploy_charmed_services + kube_secrets + update_manifest_files + namespace_vol + deploy_osm_services + if [ -n "$INSTALL_PLA"]; then + # optional PLA install + deploy_osm_pla_service + track deploy_osm_pla + fi + track deploy_osm_services_k8s + if [ -n "$INSTALL_K8S_MONITOR" ]; then + # install OSM MONITORING + install_k8s_monitoring + track install_k8s_monitoring + fi + else + # remove old stack + remove_stack $OSM_STACK_NAME + create_docker_network + deploy_lightweight + generate_osmclient_script + track docker_deploy + install_prometheus_nodeexporter + track nodeexporter + [ -n "$INSTALL_VIMEMU" ] && install_vimemu && track vimemu + [ -n "$INSTALL_ELK" ] && deploy_elk && track elk + fi + + [ -z "$INSTALL_NOHOSTCLIENT" ] && install_osmclient + track osmclient + + echo -e "Checking OSM health state..." + if [ -n "$KUBERNETES" ]; then + $OSM_DEVOPS/installers/osm_health.sh -s ${OSM_STACK_NAME} -k || \ + echo -e "OSM is not healthy, but will probably converge to a healthy state soon." && \ + echo -e "Check OSM status with: kubectl -n ${OSM_STACK_NAME} get all" && \ + track osm_unhealthy + else + $OSM_DEVOPS/installers/osm_health.sh -s ${OSM_STACK_NAME} || \ + echo -e "OSM is not healthy, but will probably converge to a healthy state soon." && \ + echo -e "Check OSM status with: docker service ls; docker stack ps ${OSM_STACK_NAME}" && \ + track osm_unhealthy + fi + track after_healthcheck + + [ -n "$KUBERNETES" ] && add_local_k8scluster + track add_local_k8scluster + + wget -q -O- https://osm-download.etsi.org/ftp/osm-10.0-ten/README2.txt &> /dev/null + track end + return 0 +} + +function install_to_openstack() { + + if [ -z "$2" ]; then + FATAL "OpenStack installer requires a valid external network name" + fi + + # Install Pip for Python3 + $WORKDIR_SUDO apt install -y python3-pip python3-venv + $WORKDIR_SUDO -H LC_ALL=C python3 -m pip install -U pip + + # Create a venv to avoid conflicts with the host installation + python3 -m venv $OPENSTACK_PYTHON_VENV + + source $OPENSTACK_PYTHON_VENV/bin/activate + + # Install Ansible, OpenStack client and SDK, latest openstack version supported is Train + python -m pip install -U wheel + python -m pip install -U "python-openstackclient<=4.0.2" "openstacksdk>=0.12.0,<=0.36.2" "ansible>=2.10,<2.11" + + # Install the Openstack cloud module (ansible>=2.10) + ansible-galaxy collection install openstack.cloud + + export ANSIBLE_CONFIG="$OSM_DEVOPS/installers/openstack/ansible.cfg" + + OSM_INSTALLER_ARGS="${REPO_ARGS[@]}" + + ANSIBLE_VARS="external_network_name=$2 setup_volume=$3 server_name=$OPENSTACK_VM_NAME" + + if [ -n "$OPENSTACK_SSH_KEY_FILE" ]; then + ANSIBLE_VARS+=" key_file=$OPENSTACK_SSH_KEY_FILE" + fi + + if [ -n "$OPENSTACK_USERDATA_FILE" ]; then + ANSIBLE_VARS+=" userdata_file=$OPENSTACK_USERDATA_FILE" + fi + + # Execute the Ansible playbook based on openrc or clouds.yaml + if [ -e "$1" ]; then + . $1 + ansible-playbook -e installer_args="\"$OSM_INSTALLER_ARGS\"" -e "$ANSIBLE_VARS" \ + $OSM_DEVOPS/installers/openstack/site.yml + else + ansible-playbook -e installer_args="\"$OSM_INSTALLER_ARGS\"" -e "$ANSIBLE_VARS" \ + -e cloud_name=$1 $OSM_DEVOPS/installers/openstack/site.yml + fi + + # Exit from venv + deactivate + + return 0 +} + +function install_vimemu() { + echo "\nInstalling vim-emu" + EMUTEMPDIR="$(mktemp -d -q --tmpdir "installosmvimemu.XXXXXX")" + trap 'rm -rf "${EMUTEMPDIR}"' EXIT + # install prerequisites (OVS is a must for the emulator to work) + sudo apt-get install openvswitch-switch + # clone vim-emu repository (attention: branch is currently master only) + echo "Cloning vim-emu repository ..." + git clone https://osm.etsi.org/gerrit/osm/vim-emu.git $EMUTEMPDIR + # build vim-emu docker + echo "Building vim-emu Docker container..." + + sg docker -c "docker build -t vim-emu-img -f $EMUTEMPDIR/Dockerfile --no-cache $EMUTEMPDIR/" || FATAL "cannot build vim-emu-img docker image" + # start vim-emu container as daemon + echo "Starting vim-emu Docker container 'vim-emu' ..." + if [ -n "$INSTALL_LIGHTWEIGHT" ]; then + # in lightweight mode, the emulator needs to be attached to netOSM + sg docker -c "docker run --name vim-emu -t -d --restart always --privileged --pid='host' --network=net${OSM_STACK_NAME} -v /var/run/docker.sock:/var/run/docker.sock vim-emu-img python examples/osm_default_daemon_topology_2_pop.py" + else + # classic build mode + sg docker -c "docker run --name vim-emu -t -d --restart always --privileged --pid='host' -v /var/run/docker.sock:/var/run/docker.sock vim-emu-img python examples/osm_default_daemon_topology_2_pop.py" + fi + echo "Waiting for 'vim-emu' container to start ..." + sleep 5 + export VIMEMU_HOSTNAME=$(sg docker -c "docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' vim-emu") + echo "vim-emu running at ${VIMEMU_HOSTNAME} ..." + # print vim-emu connection info + echo -e "\nYou might be interested in adding the following vim-emu env variables to your .bashrc file:" + echo " export VIMEMU_HOSTNAME=${VIMEMU_HOSTNAME}" + echo -e "To add the emulated VIM to OSM you should do:" + echo " osm vim-create --name emu-vim1 --user username --password password --auth_url http://${VIMEMU_HOSTNAME}:6001/v2.0 --tenant tenantName --account_type openstack" +} + +function install_k8s_monitoring() { + # install OSM monitoring + $WORKDIR_SUDO chmod +x $OSM_DEVOPS/installers/k8s/*.sh + $WORKDIR_SUDO $OSM_DEVOPS/installers/k8s/install_osm_k8s_monitoring.sh +} + +function uninstall_k8s_monitoring() { + # uninstall OSM monitoring + $WORKDIR_SUDO $OSM_DEVOPS/installers/k8s/uninstall_osm_k8s_monitoring.sh +} + +function dump_vars(){ + echo "DEVELOP=$DEVELOP" + echo "INSTALL_FROM_SOURCE=$INSTALL_FROM_SOURCE" + echo "UNINSTALL=$UNINSTALL" + echo "UPDATE=$UPDATE" + echo "RECONFIGURE=$RECONFIGURE" + echo "TEST_INSTALLER=$TEST_INSTALLER" + echo "INSTALL_VIMEMU=$INSTALL_VIMEMU" + echo "INSTALL_PLA=$INSTALL_PLA" + echo "INSTALL_LXD=$INSTALL_LXD" + echo "INSTALL_LIGHTWEIGHT=$INSTALL_LIGHTWEIGHT" + echo "INSTALL_ONLY=$INSTALL_ONLY" + echo "INSTALL_ELK=$INSTALL_ELK" + echo "INSTALL_NOCACHELXDIMAGES=$INSTALL_NOCACHELXDIMAGES" + #echo "INSTALL_PERFMON=$INSTALL_PERFMON" + echo "INSTALL_TO_OPENSTACK=$INSTALL_TO_OPENSTACK" + echo "OPENSTACK_PUBLIC_NET_NAME=$OPENSTACK_PUBLIC_NET_NAME" + echo "OPENSTACK_OPENRC_FILE_OR_CLOUD=$OPENSTACK_OPENRC_FILE_OR_CLOUD" + echo "OPENSTACK_ATTACH_VOLUME=$OPENSTACK_ATTACH_VOLUME" + echo "OPENSTACK_SSH_KEY_FILE"="$OPENSTACK_SSH_KEY_FILE" + echo "OPENSTACK_USERDATA_FILE"="$OPENSTACK_USERDATA_FILE" + echo "OPENSTACK_VM_NAME"="$OPENSTACK_VM_NAME" + echo "INSTALL_K8S_MONITOR=$INSTALL_K8S_MONITOR" + echo "TO_REBUILD=$TO_REBUILD" + echo "INSTALL_NOLXD=$INSTALL_NOLXD" + echo "INSTALL_NODOCKER=$INSTALL_NODOCKER" + echo "INSTALL_NOJUJU=$INSTALL_NOJUJU" + echo "RELEASE=$RELEASE" + echo "REPOSITORY=$REPOSITORY" + echo "REPOSITORY_BASE=$REPOSITORY_BASE" + echo "REPOSITORY_KEY=$REPOSITORY_KEY" + echo "OSM_DEVOPS=$OSM_DEVOPS" + echo "OSM_VCA_HOST=$OSM_VCA_HOST" + echo "OSM_VCA_SECRET=$OSM_VCA_SECRET" + echo "OSM_VCA_PUBKEY=$OSM_VCA_PUBKEY" + echo "NO_HOST_PORTS=$NO_HOST_PORTS" + echo "DOCKER_NOBUILD=$DOCKER_NOBUILD" + echo "WORKDIR_SUDO=$WORKDIR_SUDO" + echo "OSM_WORK_DIR=$OSM_WORK_DIR" + echo "OSM_DOCKER_TAG=$OSM_DOCKER_TAG" + echo "DOCKER_USER=$DOCKER_USER" + echo "OSM_STACK_NAME=$OSM_STACK_NAME" + echo "PULL_IMAGES=$PULL_IMAGES" + echo "KUBERNETES=$KUBERNETES" + echo "DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL" + echo "DOCKER_PROXY_URL=$DOCKER_PROXY_URL" + echo "SHOWOPTS=$SHOWOPTS" + echo "Install from specific refspec (-b): $COMMIT_ID" +} + +function track(){ + ctime=`date +%s` + duration=$((ctime - SESSION_ID)) + url="http://www.woopra.com/track/ce?project=osm.etsi.org&cookie=${SESSION_ID}" + #url="${url}&ce_campaign_name=${CAMPAIGN_NAME}" + event_name="bin" + [ -z "$INSTALL_LIGHTWEIGHT" ] && [ -n "$INSTALL_FROM_SOURCE" ] && event_name="binsrc" + [ -z "$INSTALL_LIGHTWEIGHT" ] && [ -n "$INSTALL_FROM_LXDIMAGES" ] && event_name="lxd" + [ -n "$INSTALL_LIGHTWEIGHT" ] && event_name="lw" + event_name="${event_name}_$1" + url="${url}&event=${event_name}&ce_duration=${duration}" + wget -q -O /dev/null $url +} + +function parse_docker_registry_url() { + DOCKER_REGISTRY_USER=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); split(a[1],b,":"); print b[1]}') + DOCKER_REGISTRY_PASSWORD=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); split(a[1],b,":"); print b[2]}') + DOCKER_REGISTRY_URL=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); print a[2]}') +} + +JUJU_VERSION=2.9 +JUJU_AGENT_VERSION=2.9.9 +UNINSTALL="" +DEVELOP="" +UPDATE="" +RECONFIGURE="" +TEST_INSTALLER="" +INSTALL_LXD="" +SHOWOPTS="" +COMMIT_ID="" +ASSUME_YES="" +INSTALL_FROM_SOURCE="" +RELEASE="ReleaseTEN" +REPOSITORY="stable" +INSTALL_VIMEMU="" +INSTALL_PLA="" +LXD_REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/lxd" +LXD_REPOSITORY_PATH="" +INSTALL_LIGHTWEIGHT="y" +INSTALL_TO_OPENSTACK="" +OPENSTACK_OPENRC_FILE_OR_CLOUD="" +OPENSTACK_PUBLIC_NET_NAME="" +OPENSTACK_ATTACH_VOLUME="false" +OPENSTACK_SSH_KEY_FILE="" +OPENSTACK_USERDATA_FILE="" +OPENSTACK_VM_NAME="server-osm" +OPENSTACK_PYTHON_VENV="$HOME/.virtual-envs/osm" +INSTALL_ONLY="" +INSTALL_ELK="" +TO_REBUILD="" +INSTALL_NOLXD="" +INSTALL_NODOCKER="" +INSTALL_NOJUJU="" +KUBERNETES="y" +INSTALL_K8S_MONITOR="" +INSTALL_NOHOSTCLIENT="" +INSTALL_NOCACHELXDIMAGES="" +SESSION_ID=`date +%s` +OSM_DEVOPS= +OSM_VCA_HOST= +OSM_VCA_SECRET= +OSM_VCA_PUBKEY= +OSM_VCA_CLOUDNAME="localhost" +OSM_VCA_K8S_CLOUDNAME="k8scloud" +OSM_STACK_NAME=osm +NO_HOST_PORTS="" +DOCKER_NOBUILD="" +REPOSITORY_KEY="OSM%20ETSI%20Release%20Key.gpg" +REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/debian" +WORKDIR_SUDO=sudo +OSM_WORK_DIR="/etc/osm" +OSM_DOCKER_WORK_DIR="/etc/osm/docker" +OSM_K8S_WORK_DIR="${OSM_DOCKER_WORK_DIR}/osm_pods" +OSM_HOST_VOL="/var/lib/osm" +OSM_NAMESPACE_VOL="${OSM_HOST_VOL}/${OSM_STACK_NAME}" +OSM_DOCKER_TAG=latest +DOCKER_USER=opensourcemano +PULL_IMAGES="y" +KAFKA_TAG=2.11-1.0.2 +PROMETHEUS_TAG=v2.4.3 +GRAFANA_TAG=latest +PROMETHEUS_NODE_EXPORTER_TAG=0.18.1 +PROMETHEUS_CADVISOR_TAG=latest +KEYSTONEDB_TAG=10 +OSM_DATABASE_COMMONKEY= +ELASTIC_VERSION=6.4.2 +ELASTIC_CURATOR_VERSION=5.5.4 +POD_NETWORK_CIDR=10.244.0.0/16 +K8S_MANIFEST_DIR="/etc/kubernetes/manifests" +RE_CHECK='^[a-z0-9]([-a-z0-9]*[a-z0-9])?$' +DOCKER_REGISTRY_URL= +DOCKER_PROXY_URL= +MODULE_DOCKER_TAG= + +while getopts ":b:r:c:n:k:u:R:D:o:O:m:N:H:S:s:w:t:U:P:A:l:L:K:d:p:T:f:F:-: hy" o; do + case "${o}" in + b) + COMMIT_ID=${OPTARG} + PULL_IMAGES="" + ;; + r) + REPOSITORY="${OPTARG}" + REPO_ARGS+=(-r "$REPOSITORY") + ;; + c) + [ "${OPTARG}" == "swarm" ] && KUBERNETES="" && REPO_ARGS+=(-c "${OPTARG}") && continue + [ "${OPTARG}" == "k8s" ] && KUBERNETES="y" && continue + echo -e "Invalid argument for -i : ' $OPTARG'\n" >&2 + usage && exit 1 + ;; + k) + REPOSITORY_KEY="${OPTARG}" + REPO_ARGS+=(-k "$REPOSITORY_KEY") + ;; + u) + REPOSITORY_BASE="${OPTARG}" + REPO_ARGS+=(-u "$REPOSITORY_BASE") + ;; + R) + RELEASE="${OPTARG}" + REPO_ARGS+=(-R "$RELEASE") + ;; + D) + OSM_DEVOPS="${OPTARG}" + ;; + o) + INSTALL_ONLY="y" + [ "${OPTARG}" == "vimemu" ] && INSTALL_VIMEMU="y" && continue + [ "${OPTARG}" == "elk_stack" ] && INSTALL_ELK="y" && continue + [ "${OPTARG}" == "k8s_monitor" ] && INSTALL_K8S_MONITOR="y" && continue + ;; + O) + INSTALL_TO_OPENSTACK="y" + if [ -n "${OPTARG}" ]; then + OPENSTACK_OPENRC_FILE_OR_CLOUD="${OPTARG}" + else + echo -e "Invalid argument for -O : ' $OPTARG'\n" >&2 + usage && exit 1 + fi + ;; + f) + OPENSTACK_SSH_KEY_FILE="${OPTARG}" + ;; + F) + OPENSTACK_USERDATA_FILE="${OPTARG}" + ;; + N) + OPENSTACK_PUBLIC_NET_NAME="${OPTARG}" + ;; + m) + [ "${OPTARG}" == "NG-UI" ] && TO_REBUILD="$TO_REBUILD NG-UI" && continue + [ "${OPTARG}" == "NBI" ] && TO_REBUILD="$TO_REBUILD NBI" && continue + [ "${OPTARG}" == "LCM" ] && TO_REBUILD="$TO_REBUILD LCM" && continue + [ "${OPTARG}" == "RO" ] && TO_REBUILD="$TO_REBUILD RO" && continue + [ "${OPTARG}" == "MON" ] && TO_REBUILD="$TO_REBUILD MON" && continue + [ "${OPTARG}" == "POL" ] && TO_REBUILD="$TO_REBUILD POL" && continue + [ "${OPTARG}" == "PLA" ] && TO_REBUILD="$TO_REBUILD PLA" && continue + [ "${OPTARG}" == "osmclient" ] && TO_REBUILD="$TO_REBUILD osmclient" && continue + [ "${OPTARG}" == "KAFKA" ] && TO_REBUILD="$TO_REBUILD KAFKA" && continue + [ "${OPTARG}" == "MONGO" ] && TO_REBUILD="$TO_REBUILD MONGO" && continue + [ "${OPTARG}" == "PROMETHEUS" ] && TO_REBUILD="$TO_REBUILD PROMETHEUS" && continue + [ "${OPTARG}" == "PROMETHEUS-CADVISOR" ] && TO_REBUILD="$TO_REBUILD PROMETHEUS-CADVISOR" && continue + [ "${OPTARG}" == "KEYSTONE-DB" ] && TO_REBUILD="$TO_REBUILD KEYSTONE-DB" && continue + [ "${OPTARG}" == "GRAFANA" ] && TO_REBUILD="$TO_REBUILD GRAFANA" && continue + [ "${OPTARG}" == "NONE" ] && TO_REBUILD="$TO_REBUILD NONE" && continue + ;; + H) + OSM_VCA_HOST="${OPTARG}" + ;; + S) + OSM_VCA_SECRET="${OPTARG}" + ;; + s) + OSM_STACK_NAME="${OPTARG}" && [ -n "$KUBERNETES" ] && [[ ! "${OPTARG}" =~ $RE_CHECK ]] && echo "Namespace $OPTARG is invalid. Regex used for validation is $RE_CHECK" && exit 0 + ;; + w) + # when specifying workdir, do not use sudo for access + WORKDIR_SUDO= + OSM_WORK_DIR="${OPTARG}" + ;; + t) + OSM_DOCKER_TAG="${OPTARG}" + REPO_ARGS+=(-t "$OSM_DOCKER_TAG") + ;; + U) + DOCKER_USER="${OPTARG}" + ;; + P) + OSM_VCA_PUBKEY=$(cat ${OPTARG}) + ;; + A) + OSM_VCA_APIPROXY="${OPTARG}" + ;; + l) + LXD_CLOUD_FILE="${OPTARG}" + ;; + L) + LXD_CRED_FILE="${OPTARG}" + ;; + K) + CONTROLLER_NAME="${OPTARG}" + ;; + d) + DOCKER_REGISTRY_URL="${OPTARG}" + ;; + p) + DOCKER_PROXY_URL="${OPTARG}" + ;; + T) + MODULE_DOCKER_TAG="${OPTARG}" + ;; + -) + [ "${OPTARG}" == "help" ] && usage && exit 0 + [ "${OPTARG}" == "source" ] && INSTALL_FROM_SOURCE="y" && PULL_IMAGES="" && continue + [ "${OPTARG}" == "develop" ] && DEVELOP="y" && continue + [ "${OPTARG}" == "uninstall" ] && UNINSTALL="y" && continue + [ "${OPTARG}" == "update" ] && UPDATE="y" && continue + [ "${OPTARG}" == "reconfigure" ] && RECONFIGURE="y" && continue + [ "${OPTARG}" == "test" ] && TEST_INSTALLER="y" && continue + [ "${OPTARG}" == "lxdinstall" ] && INSTALL_LXD="y" && continue + [ "${OPTARG}" == "nolxd" ] && INSTALL_NOLXD="y" && continue + [ "${OPTARG}" == "nodocker" ] && INSTALL_NODOCKER="y" && continue + [ "${OPTARG}" == "lightweight" ] && INSTALL_LIGHTWEIGHT="y" && continue + [ "${OPTARG}" == "vimemu" ] && INSTALL_VIMEMU="y" && continue + [ "${OPTARG}" == "elk_stack" ] && INSTALL_ELK="y" && continue + [ "${OPTARG}" == "showopts" ] && SHOWOPTS="y" && continue + [ "${OPTARG}" == "nohostports" ] && NO_HOST_PORTS="y" && continue + [ "${OPTARG}" == "nojuju" ] && INSTALL_NOJUJU="y" && continue + [ "${OPTARG}" == "nodockerbuild" ] && DOCKER_NOBUILD="y" && continue + [ "${OPTARG}" == "nohostclient" ] && INSTALL_NOHOSTCLIENT="y" && continue + [ "${OPTARG}" == "pullimages" ] && continue + [ "${OPTARG}" == "k8s_monitor" ] && INSTALL_K8S_MONITOR="y" && continue + [ "${OPTARG}" == "charmed" ] && CHARMED="y" && continue + [ "${OPTARG}" == "bundle" ] && continue + [ "${OPTARG}" == "k8s" ] && continue + [ "${OPTARG}" == "lxd" ] && continue + [ "${OPTARG}" == "lxd-cred" ] && continue + [ "${OPTARG}" == "microstack" ] && continue + [ "${OPTARG}" == "overlay" ] && continue + [ "${OPTARG}" == "only-vca" ] && continue + [ "${OPTARG}" == "vca" ] && continue + [ "${OPTARG}" == "ha" ] && continue + [ "${OPTARG}" == "tag" ] && continue + [ "${OPTARG}" == "registry" ] && continue + [ "${OPTARG}" == "pla" ] && INSTALL_PLA="y" && continue + [ "${OPTARG}" == "volume" ] && OPENSTACK_ATTACH_VOLUME="true" && continue + [ "${OPTARG}" == "nocachelxdimages" ] && INSTALL_NOCACHELXDIMAGES="y" && continue + echo -e "Invalid option: '--$OPTARG'\n" >&2 + usage && exit 1 + ;; + :) + echo "Option -$OPTARG requires an argument" >&2 + usage && exit 1 + ;; + \?) + echo -e "Invalid option: '-$OPTARG'\n" >&2 + usage && exit 1 + ;; + h) + usage && exit 0 + ;; + y) + ASSUME_YES="y" + ;; + *) + usage && exit 1 + ;; + esac +done + +[ -n "$DOCKER_REGISTRY_URL" ] && parse_docker_registry_url +[ -n "$TO_REBUILD" ] && [ "$TO_REBUILD" != " NONE" ] && echo $TO_REBUILD | grep -q NONE && FATAL "Incompatible option: -m NONE cannot be used with other -m options" +[ -n "$TO_REBUILD" ] && [ "$TO_REBUILD" == " PLA" ] && [ -z "$INSTALL_PLA" ] && FATAL "Incompatible option: -m PLA cannot be used without --pla option" + +if [ -n "$SHOWOPTS" ]; then + dump_vars + exit 0 +fi + +if [ -n "$CHARMED" ]; then + if [ -n "$UNINSTALL" ]; then + ${OSM_DEVOPS}/installers/charmed_uninstall.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D /usr/share/osm-devops -t $DOCKER_TAG "$@" + else + ${OSM_DEVOPS}/installers/charmed_install.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D /usr/share/osm-devops -t $DOCKER_TAG "$@" + fi + + exit 0 +fi + +# if develop, we force master +[ -z "$COMMIT_ID" ] && [ -n "$DEVELOP" ] && COMMIT_ID="master" + +need_packages="git wget curl tar" + +[ -n "$INSTALL_TO_OPENSTACK" ] && install_to_openstack $OPENSTACK_OPENRC_FILE_OR_CLOUD $OPENSTACK_PUBLIC_NET_NAME $OPENSTACK_ATTACH_VOLUME && echo -e "\nDONE" && exit 0 + +echo -e "Checking required packages: $need_packages" +dpkg -l $need_packages &>/dev/null \ + || ! echo -e "One or several required packages are not installed. Updating apt cache requires root privileges." \ + || sudo apt-get update \ + || FATAL "failed to run apt-get update" +dpkg -l $need_packages &>/dev/null \ + || ! echo -e "Installing $need_packages requires root privileges." \ + || sudo apt-get install -y $need_packages \ + || FATAL "failed to install $need_packages" +sudo snap install jq +if [ -z "$OSM_DEVOPS" ]; then + if [ -n "$TEST_INSTALLER" ]; then + echo -e "\nUsing local devops repo for OSM installation" + OSM_DEVOPS="$(dirname $(realpath $(dirname $0)))" + else + echo -e "\nCreating temporary dir for OSM installation" + OSM_DEVOPS="$(mktemp -d -q --tmpdir "installosm.XXXXXX")" + trap 'rm -rf "$OSM_DEVOPS"' EXIT + + git clone https://osm.etsi.org/gerrit/osm/devops.git $OSM_DEVOPS + + if [ -z "$COMMIT_ID" ]; then + echo -e "\nGuessing the current stable release" + LATEST_STABLE_DEVOPS=`git -C $OSM_DEVOPS tag -l v[0-9].* | sort -V | tail -n1` + [ -z "$LATEST_STABLE_DEVOPS" ] && echo "Could not find the current latest stable release" && exit 0 + + echo "Latest tag in devops repo: $LATEST_STABLE_DEVOPS" + COMMIT_ID="tags/$LATEST_STABLE_DEVOPS" + else + echo -e "\nDEVOPS Using commit $COMMIT_ID" + fi + git -C $OSM_DEVOPS checkout $COMMIT_ID + fi +fi + +. $OSM_DEVOPS/common/all_funcs + +[ "${OSM_STACK_NAME}" == "osm" ] || OSM_DOCKER_WORK_DIR="$OSM_WORK_DIR/stack/$OSM_STACK_NAME" +[ -n "$KUBERNETES" ] && OSM_K8S_WORK_DIR="$OSM_DOCKER_WORK_DIR/osm_pods" && OSM_NAMESPACE_VOL="${OSM_HOST_VOL}/${OSM_STACK_NAME}" +[ -n "$INSTALL_LIGHTWEIGHT" ] && [ -n "$UNINSTALL" ] && uninstall_lightweight && echo -e "\nDONE" && exit 0 +[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_ELK" ] && deploy_elk +#[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_PERFMON" ] && deploy_perfmon +[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_VIMEMU" ] && install_vimemu +[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_K8S_MONITOR" ] && install_k8s_monitoring +[ -n "$INSTALL_ONLY" ] && echo -e "\nDONE" && exit 0 + +#Installation starts here +wget -q -O- https://osm-download.etsi.org/ftp/osm-10.0-ten/README.txt &> /dev/null +track start + +[ -n "$INSTALL_LIGHTWEIGHT" ] && install_lightweight && echo -e "\nDONE" && exit 0 +echo -e "\nInstalling OSM from refspec: $COMMIT_ID" +if [ -n "$INSTALL_FROM_SOURCE" ] && [ -z "$ASSUME_YES" ]; then + ! ask_user "The installation will take about 75-90 minutes. Continue (Y/n)? " y && echo "Cancelled!" && exit 1 +fi + +echo -e "Checking required packages: lxd" +lxd --version &>/dev/null || FATAL "lxd not present, exiting." +[ -n "$INSTALL_LXD" ] && echo -e "\nInstalling and configuring lxd" && install_lxd + +# use local devops for containers +export OSM_USE_LOCAL_DEVOPS=true + +#Install osmclient + +#Install vim-emu (optional) +[ -n "$INSTALL_VIMEMU" ] && install_docker_ce && install_vimemu + +wget -q -O- https://osm-download.etsi.org/ftp/osm-10.0-ten/README2.txt &> /dev/null +track end +echo -e "\nDONE" diff --git a/_tmp/osm-install/gitlab.install_osm.sh b/_tmp/osm-install/gitlab.install_osm.sh new file mode 100644 index 0000000..4e1bbb1 --- /dev/null +++ b/_tmp/osm-install/gitlab.install_osm.sh @@ -0,0 +1,160 @@ +#!/bin/bash +# +# 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. +# +REPOSITORY_BASE=https://osm-download.etsi.org/repository/osm/debian +RELEASE=ReleaseTEN +REPOSITORY=stable +DOCKER_TAG=10 +DEVOPS_PATH=/usr/share/osm-devops + +function usage(){ + echo -e "usage: $0 [OPTIONS]" + echo -e "Install OSM from binaries or source code (by default, from binaries)" + echo -e " OPTIONS" + echo -e " -h / --help: print this help" + echo -e " -y: do not prompt for confirmation, assumes yes" + echo -e " -r : use specified repository name for osm packages" + echo -e " -R : use specified release for osm binaries (deb packages, lxd images, ...)" + echo -e " -u : use specified repository url for osm packages" + echo -e " -k : use specified repository public key url" + echo -e " -b : install OSM from source code using a specific branch (master, v2.0, ...) or tag" + echo -e " -b master (main dev branch)" + echo -e " -b v2.0 (v2.0 branch)" + echo -e " -b tags/v1.1.0 (a specific tag)" + echo -e " ..." + echo -e " -c deploy osm services using container . Valid values are or . If -c is not used then osm will be deployed using default orchestrator. When used with --uninstall, osm services deployed by the orchestrator will be uninstalled" + echo -e " -s or user defined stack name when installed using swarm or namespace when installed using k8s, default is osm" + echo -e " -H use specific juju host controller IP" + echo -e " -S use VCA/juju secret key" + echo -e " -P use VCA/juju public key file" + echo -e " -C use VCA/juju CA certificate file" + echo -e " -A use VCA/juju API proxy" + echo -e " --vimemu: additionally deploy the VIM emulator as a docker container" + echo -e " --elk_stack: additionally deploy an ELK docker stack for event logging" + echo -e " --pla: install the PLA module for placement support" + echo -e " -m : install OSM but only rebuild the specified docker images (LW-UI, NBI, LCM, RO, MON, POL, KAFKA, MONGO, PROMETHEUS, PROMETHEUS-CADVISOR, KEYSTONE-DB, PLA, NONE)" + echo -e " -o : ONLY (un)installs one of the addons (vimemu, elk_stack, k8s_monitor)" + echo -e " -O : Install OSM to an OpenStack infrastructure. is required. If a is used, the clouds.yaml file should be under ~/.config/openstack/ or /etc/openstack/" + echo -e " -N : Public network name required to setup OSM to OpenStack" + echo -e " -D use local devops installation path" + echo -e " -w Location to store runtime installation" + echo -e " -t specify osm docker tag (default is latest)" + echo -e " -l: LXD cloud yaml file" + echo -e " -L: LXD credentials yaml file" + echo -e " -K: Specifies the name of the controller to use - The controller must be already bootstrapped" + echo -e " -d use docker registry URL instead of dockerhub" + echo -e " -p set docker proxy URL as part of docker CE configuration" + echo -e " -T specify docker tag for the modules specified with option -m" + echo -e " --nocachelxdimages: do not cache local lxd images, do not create cronjob for that cache (will save installation time, might affect instantiation time)" + echo -e " --nolxd: do not install and configure LXD, allowing unattended installations (assumes LXD is already installed and confifured)" + echo -e " --nodocker: do not install docker, do not initialize a swarm (assumes docker is already installed and a swarm has been initialized)" + echo -e " --nojuju: do not juju, assumes already installed" + echo -e " --nodockerbuild:do not build docker images (use existing locally cached images)" + echo -e " --nohostports: do not expose docker ports to host (useful for creating multiple instances of osm on the same host)" + echo -e " --nohostclient: do not install the osmclient" + echo -e " --uninstall: uninstall OSM: remove the containers and delete NAT rules" + echo -e " --source: install OSM from source code using the latest stable tag" + echo -e " --develop: (deprecated, use '-b master') install OSM from source code using the master branch" + echo -e " --pullimages: pull/run osm images from docker.io/opensourcemano" + echo -e " --k8s_monitor: install the OSM kubernetes monitoring with prometheus and grafana" + echo -e " --volume: create a VM volume when installing to OpenStack" + echo -e " --showopts: print chosen options and exit (only for debugging)" + echo -e " --charmed: Deploy and operate OSM with Charms on k8s" + echo -e " [--bundle ]: Specify with which bundle to deploy OSM with charms (--charmed option)" + echo -e " [--k8s ]: Specify with which kubernetes to deploy OSM with charms (--charmed option)" + echo -e " [--vca ]: Specifies the name of the controller to use - The controller must be already bootstrapped (--charmed option)" + echo -e " [--lxd ]: Takes a YAML file as a parameter with the LXD Cloud information (--charmed option)" + echo -e " [--lxd-cred ]: Takes a YAML file as a parameter with the LXD Credentials information (--charmed option)" + echo -e " [--microstack]: Installs microstack as a vim. (--charmed option)" + echo -e " [--overlay]: Add an overlay to override some defaults of the default bundle (--charmed option)" + echo -e " [--ha]: Installs High Availability bundle. (--charmed option)" + echo -e " [--tag]: Docker image tag. (--charmed option)" + echo -e " [--registry]: Docker registry with optional credentials as user:pass@hostname:port (--charmed option)" + +} + +add_repo() { + REPO_CHECK="^$1" + grep "${REPO_CHECK/\[arch=amd64\]/\\[arch=amd64\\]}" /etc/apt/sources.list > /dev/null 2>&1 + if [ $? -ne 0 ] + then + need_packages_lw="software-properties-common apt-transport-https" + echo -e "Checking required packages: $need_packages_lw" + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "One or several required packages are not installed. Updating apt cache requires root privileges." \ + || sudo apt-get -q update \ + || ! echo "failed to run apt-get update" \ + || exit 1 + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "Installing $need_packages_lw requires root privileges." \ + || sudo apt-get install -y $need_packages_lw \ + || ! echo "failed to install $need_packages_lw" \ + || exit 1 + wget -qO - $REPOSITORY_BASE/$RELEASE/OSM%20ETSI%20Release%20Key.gpg | sudo apt-key add - + sudo DEBIAN_FRONTEND=noninteractive add-apt-repository -y "$1" && sudo DEBIAN_FRONTEND=noninteractive apt-get update + return 0 + fi + + return 1 +} + +clean_old_repo() { +dpkg -s 'osm-devops' &> /dev/null +if [ $? -eq 0 ]; then + # Clean the previous repos that might exist + sudo sed -i "/osm-download.etsi.org/d" /etc/apt/sources.list +fi +} + +while getopts ":b:r:c:n:k:u:R:l:L:K:p:D:o:O:m:N:H:S:s:w:t:U:P:A:d:p:f:F:-: hy" o; do + case "${o}" in + D) + DEVOPS_PATH="${OPTARG}" + ;; + r) + REPOSITORY="${OPTARG}" + ;; + R) + RELEASE="${OPTARG}" + ;; + u) + REPOSITORY_BASE="${OPTARG}" + ;; + t) + DOCKER_TAG="${OPTARG}" + ;; + -) + [ "${OPTARG}" == "help" ] && usage && exit 0 + ;; + :) + echo "Option -$OPTARG requires an argument" >&2 + usage && exit 1 + ;; + \?) + echo -e "Invalid option: '-$OPTARG'\n" >&2 + usage && exit 1 + ;; + h) + usage && exit 0 + ;; + *) + ;; + esac +done + +clean_old_repo +add_repo "deb [arch=amd64] $REPOSITORY_BASE/$RELEASE $REPOSITORY devops" +sudo DEBIAN_FRONTEND=noninteractive apt-get -q update +sudo DEBIAN_FRONTEND=noninteractive apt-get install osm-devops +$DEVOPS_PATH/installers/full_install_osm.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D $DEVOPS_PATH -t $DOCKER_TAG "$@" diff --git a/_tmp/osm-install/gitweb.full_install_osm.sh b/_tmp/osm-install/gitweb.full_install_osm.sh new file mode 100644 index 0000000..03b2c57 --- /dev/null +++ b/_tmp/osm-install/gitweb.full_install_osm.sh @@ -0,0 +1,1870 @@ +#!/bin/bash +# Copyright 2016 Telefónica Investigación y Desarrollo S.A.U. +# +# 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. + +function usage(){ + echo -e "usage: $0 [OPTIONS]" + echo -e "Install OSM from binaries or source code (by default, from binaries)" + echo -e " OPTIONS" + echo -e " -h / --help: print this help" + echo -e " -y: do not prompt for confirmation, assumes yes" + echo -e " -r : use specified repository name for osm packages" + echo -e " -R : use specified release for osm binaries (deb packages, lxd images, ...)" + echo -e " -u : use specified repository url for osm packages" + echo -e " -k : use specified repository public key url" + echo -e " -b : install OSM from source code using a specific branch (master, v2.0, ...) or tag" + echo -e " -b master (main dev branch)" + echo -e " -b v2.0 (v2.0 branch)" + echo -e " -b tags/v1.1.0 (a specific tag)" + echo -e " ..." + echo -e " -c deploy osm services using container . Valid values are or . If -c is not used then osm will be deployed using default orchestrator. When used with --uninstall, osm services deployed by the orchestrator will be uninstalled" + echo -e " -s or user defined stack name when installed using swarm or namespace when installed using k8s, default is osm" + echo -e " -H use specific juju host controller IP" + echo -e " -S use VCA/juju secret key" + echo -e " -P use VCA/juju public key file" + echo -e " -C use VCA/juju CA certificate file" + echo -e " -A use VCA/juju API proxy" + echo -e " --vimemu: additionally deploy the VIM emulator as a docker container" + echo -e " --elk_stack: additionally deploy an ELK docker stack for event logging" + echo -e " --pla: install the PLA module for placement support" + echo -e " -m : install OSM but only rebuild or pull the specified docker images (NG-UI, NBI, LCM, RO, MON, POL, PLA, KAFKA, MONGO, PROMETHEUS, PROMETHEUS-CADVISOR, KEYSTONE-DB, NONE)" + echo -e " -o : ONLY (un)installs one of the addons (vimemu, elk_stack, k8s_monitor)" + echo -e " -O : Install OSM to an OpenStack infrastructure. is required. If a is used, the clouds.yaml file should be under ~/.config/openstack/ or /etc/openstack/" + echo -e " -N : Public network name required to setup OSM to OpenStack" + echo -e " -f : Public SSH key to use to deploy OSM to OpenStack" + echo -e " -F : Cloud-Init userdata file to deploy OSM to OpenStack" + echo -e " -D use local devops installation path" + echo -e " -w Location to store runtime installation" + echo -e " -t specify osm docker tag (default is latest)" + echo -e " -l: LXD cloud yaml file" + echo -e " -L: LXD credentials yaml file" + echo -e " -K: Specifies the name of the controller to use - The controller must be already bootstrapped" + echo -e " -d use docker registry URL instead of dockerhub" + echo -e " -p set docker proxy URL as part of docker CE configuration" + echo -e " -T specify docker tag for the modules specified with option -m" + echo -e " --nocachelxdimages: do not cache local lxd images, do not create cronjob for that cache (will save installation time, might affect instantiation time)" + echo -e " --nolxd: do not install and configure LXD, allowing unattended installations (assumes LXD is already installed and confifured)" + echo -e " --nodocker: do not install docker, do not initialize a swarm (assumes docker is already installed and a swarm has been initialized)" + echo -e " --nojuju: do not juju, assumes already installed" + echo -e " --nodockerbuild:do not build docker images (use existing locally cached images)" + echo -e " --nohostports: do not expose docker ports to host (useful for creating multiple instances of osm on the same host)" + echo -e " --nohostclient: do not install the osmclient" + echo -e " --uninstall: uninstall OSM: remove the containers and delete NAT rules" + echo -e " --source: install OSM from source code using the latest stable tag" + echo -e " --develop: (deprecated, use '-b master') install OSM from source code using the master branch" + echo -e " --pullimages: pull/run osm images from docker.io/opensourcemano" + echo -e " --k8s_monitor: install the OSM kubernetes monitoring with prometheus and grafana" + echo -e " --volume: create a VM volume when installing to OpenStack" +# echo -e " --reconfigure: reconfigure the modules (DO NOT change NAT rules)" +# echo -e " --update: update to the latest stable release or to the latest commit if using a specific branch" + echo -e " --showopts: print chosen options and exit (only for debugging)" + echo -e " --charmed: Deploy and operate OSM with Charms on k8s" + echo -e " [--bundle ]: Specify with which bundle to deploy OSM with charms (--charmed option)" + echo -e " [--k8s ]: Specify with which kubernetes to deploy OSM with charms (--charmed option)" + echo -e " [--vca ]: Specifies the name of the controller to use - The controller must be already bootstrapped (--charmed option)" + echo -e " [--lxd ]: Takes a YAML file as a parameter with the LXD Cloud information (--charmed option)" + echo -e " [--lxd-cred ]: Takes a YAML file as a parameter with the LXD Credentials information (--charmed option)" + echo -e " [--microstack]: Installs microstack as a vim. (--charmed option)" + echo -e " [--overlay]: Add an overlay to override some defaults of the default bundle (--charmed option)" + echo -e " [--ha]: Installs High Availability bundle. (--charmed option)" + echo -e " [--tag]: Docker image tag. (--charmed option)" + echo -e " [--registry]: Docker registry with optional credentials as user:pass@hostname:port (--charmed option)" + +} + +# takes a juju/accounts.yaml file and returns the password specific +# for a controller. I wrote this using only bash tools to minimize +# additions of other packages +function parse_juju_password { + password_file="${HOME}/.local/share/juju/accounts.yaml" + local controller_name=$1 + local s='[[:space:]]*' w='[a-zA-Z0-9_-]*' fs=$(echo @|tr @ '\034') + sed -ne "s|^\($s\):|\1|" \ + -e "s|^\($s\)\($w\)$s:$s[\"']\(.*\)[\"']$s\$|\1$fs\2$fs\3|p" \ + -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" $password_file | + awk -F$fs -v controller=$controller_name '{ + indent = length($1)/2; + vname[indent] = $2; + for (i in vname) {if (i > indent) {delete vname[i]}} + if (length($3) > 0) { + vn=""; for (i=0; i/dev/null; then + echo -e " Not installed.\nInstalling iptables-persistent requires root privileges" + echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections + echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections + sudo apt-get -yq install iptables-persistent + fi +} + +#Configure NAT rules, based on the current IP addresses of containers +function nat(){ + check_install_iptables_persistent + + echo -e "\nConfiguring NAT rules" + echo -e " Required root privileges" + sudo $OSM_DEVOPS/installers/nat_osm +} + +function FATAL(){ + echo "FATAL error: Cannot install OSM due to \"$1\"" + exit 1 +} + +function update_juju_images(){ + crontab -l | grep update-juju-lxc-images || (crontab -l 2>/dev/null; echo "0 4 * * 6 $USER ${OSM_DEVOPS}/installers/update-juju-lxc-images --xenial --bionic") | crontab - + ${OSM_DEVOPS}/installers/update-juju-lxc-images --xenial --bionic +} + +function install_lxd() { + # Apply sysctl production values for optimal performance + sudo cp ${OSM_DEVOPS}/installers/60-lxd-production.conf /etc/sysctl.d/60-lxd-production.conf + sudo sysctl --system + + # Install LXD snap + sudo apt-get remove --purge -y liblxc1 lxc-common lxcfs lxd lxd-client + sudo snap install lxd + + # Configure LXD + sudo usermod -a -G lxd `whoami` + cat ${OSM_DEVOPS}/installers/lxd-preseed.conf | sed 's/^config: {}/config:\n core.https_address: '$DEFAULT_IP':8443/' | sg lxd -c "lxd init --preseed" + sg lxd -c "lxd waitready" + DEFAULT_INTERFACE=$(ip route list|awk '$1=="default" {print $5; exit}') + [ -z "$DEFAULT_INTERFACE" ] && DEFAULT_INTERFACE=$(route -n |awk '$1~/^0.0.0.0/ {print $8; exit}') + DEFAULT_MTU=$(ip addr show $DEFAULT_INTERFACE | perl -ne 'if (/mtu\s(\d+)/) {print $1;}') + sg lxd -c "lxc profile device set default eth0 mtu $DEFAULT_MTU" + sg lxd -c "lxc network set lxdbr0 bridge.mtu $DEFAULT_MTU" + #sudo systemctl stop lxd-bridge + #sudo systemctl --system daemon-reload + #sudo systemctl enable lxd-bridge + #sudo systemctl start lxd-bridge +} + +function ask_user(){ + # ask to the user and parse a response among 'y', 'yes', 'n' or 'no'. Case insensitive + # Params: $1 text to ask; $2 Action by default, can be 'y' for yes, 'n' for no, other or empty for not allowed + # Return: true(0) if user type 'yes'; false (1) if user type 'no' + read -e -p "$1" USER_CONFIRMATION + while true ; do + [ -z "$USER_CONFIRMATION" ] && [ "$2" == 'y' ] && return 0 + [ -z "$USER_CONFIRMATION" ] && [ "$2" == 'n' ] && return 1 + [ "${USER_CONFIRMATION,,}" == "yes" ] || [ "${USER_CONFIRMATION,,}" == "y" ] && return 0 + [ "${USER_CONFIRMATION,,}" == "no" ] || [ "${USER_CONFIRMATION,,}" == "n" ] && return 1 + read -e -p "Please type 'yes' or 'no': " USER_CONFIRMATION + done +} + +function install_osmclient(){ + CLIENT_RELEASE=${RELEASE#"-R "} + CLIENT_REPOSITORY_KEY="OSM%20ETSI%20Release%20Key.gpg" + CLIENT_REPOSITORY=${REPOSITORY#"-r "} + CLIENT_REPOSITORY_BASE=${REPOSITORY_BASE#"-u "} + key_location=$CLIENT_REPOSITORY_BASE/$CLIENT_RELEASE/$CLIENT_REPOSITORY_KEY + curl $key_location | sudo apt-key add - + sudo add-apt-repository -y "deb [arch=amd64] $CLIENT_REPOSITORY_BASE/$CLIENT_RELEASE $CLIENT_REPOSITORY osmclient IM" + sudo apt-get update + sudo apt-get install -y python3-pip + sudo -H LC_ALL=C python3 -m pip install -U pip + sudo -H LC_ALL=C python3 -m pip install -U python-magic pyangbind verboselogs + sudo apt-get install -y python3-osm-im python3-osmclient + if [ -f /usr/lib/python3/dist-packages/osm_im/requirements.txt ]; then + python3 -m pip install -r /usr/lib/python3/dist-packages/osm_im/requirements.txt + fi + if [ -f /usr/lib/python3/dist-packages/osmclient/requirements.txt ]; then + sudo apt-get install -y libcurl4-openssl-dev libssl-dev + python3 -m pip install -r /usr/lib/python3/dist-packages/osmclient/requirements.txt + fi + #sed 's,OSM_SOL005=[^$]*,OSM_SOL005=True,' -i ${HOME}/.bashrc + #echo 'export OSM_HOSTNAME=localhost' >> ${HOME}/.bashrc + #echo 'export OSM_SOL005=True' >> ${HOME}/.bashrc + [ -z "$INSTALL_LIGHTWEIGHT" ] && export OSM_HOSTNAME=`lxc list | awk '($2=="SO-ub"){print $6}'` + [ -z "$INSTALL_LIGHTWEIGHT" ] && export OSM_RO_HOSTNAME=`lxc list | awk '($2=="RO"){print $6}'` + echo -e "\nOSM client installed" + if [ -z "$INSTALL_LIGHTWEIGHT" ]; then + echo -e "You might be interested in adding the following OSM client env variables to your .bashrc file:" + echo " export OSM_HOSTNAME=${OSM_HOSTNAME}" + echo " export OSM_RO_HOSTNAME=${OSM_RO_HOSTNAME}" + else + echo -e "OSM client assumes that OSM host is running in localhost (127.0.0.1)." + echo -e "In case you want to interact with a different OSM host, you will have to configure this env variable in your .bashrc file:" + echo " export OSM_HOSTNAME=" + fi + return 0 +} + +function install_prometheus_nodeexporter(){ + if (systemctl -q is-active node_exporter) + then + echo "Node Exporter is already running." + else + echo "Node Exporter is not active, installing..." + if getent passwd node_exporter > /dev/null 2>&1; then + echo "node_exporter user exists" + else + echo "Creating user node_exporter" + sudo useradd --no-create-home --shell /bin/false node_exporter + fi + wget -q https://github.com/prometheus/node_exporter/releases/download/v$PROMETHEUS_NODE_EXPORTER_TAG/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64.tar.gz -P /tmp/ + sudo tar -C /tmp -xf /tmp/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64.tar.gz + sudo cp /tmp/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64/node_exporter /usr/local/bin + sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter + sudo rm -rf /tmp/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64* + sudo cp ${OSM_DEVOPS}/installers/docker/prometheus_exporters/node_exporter.service /etc/systemd/system/node_exporter.service + sudo systemctl daemon-reload + sudo systemctl restart node_exporter + sudo systemctl enable node_exporter + echo "Node Exporter has been activated in this host." + fi + return 0 +} + +function uninstall_prometheus_nodeexporter(){ + sudo systemctl stop node_exporter + sudo systemctl disable node_exporter + sudo rm /etc/systemd/system/node_exporter.service + sudo systemctl daemon-reload + sudo userdel node_exporter + sudo rm /usr/local/bin/node_exporter + return 0 +} + +function install_docker_ce() { + # installs and configures Docker CE + echo "Installing Docker CE ..." + sudo apt-get -qq update + sudo apt-get install -y apt-transport-https ca-certificates software-properties-common + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - + sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" + sudo apt-get -qq update + sudo apt-get install -y docker-ce + echo "Adding user to group 'docker'" + sudo groupadd -f docker + sudo usermod -aG docker $USER + sleep 2 + sudo service docker restart + echo "... restarted Docker service" + if [ -n "${DOCKER_PROXY_URL}" ]; then + echo "Configuring docker proxy ..." + if [ -f /etc/docker/daemon.json ]; then + if grep -q registry-mirrors /etc/docker/daemon.json; then + sudo sed -i "s|registry-mirrors.*|registry-mirrors\": [\"${DOCKER_PROXY_URL}\"] |" /etc/docker/daemon.json + else + sudo sed -i "s|{|{\n \"registry-mirrors\": [\"${DOCKER_PROXY_URL}\"],|" /etc/docker/daemon.json + fi + else + sudo bash -c "cat << EOF > /etc/docker/daemon.json +{ + \"registry-mirrors\": [\"${DOCKER_PROXY_URL}\"] +} +EOF" + fi + sudo systemctl daemon-reload + sudo service docker restart + echo "... restarted Docker service again" + fi + sg docker -c "docker version" || FATAL "Docker installation failed" + echo "... Docker CE installation done" + return 0 +} + +function install_docker_compose() { + # installs and configures docker-compose + echo "Installing Docker Compose ..." + sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose + sudo chmod +x /usr/local/bin/docker-compose + echo "... Docker Compose installation done" +} + +function install_juju() { + echo "Installing juju" + sudo snap install juju --classic --channel=$JUJU_VERSION/stable + [[ ":$PATH": != *":/snap/bin:"* ]] && PATH="/snap/bin:${PATH}" + [ -n "$INSTALL_NOCACHELXDIMAGES" ] || update_juju_images + echo "Finished installation of juju" + return 0 +} + +function juju_createcontroller() { + if ! juju show-controller $OSM_STACK_NAME &> /dev/null; then + # Not found created, create the controller + sudo usermod -a -G lxd ${USER} + sg lxd -c "juju bootstrap --bootstrap-series=xenial --agent-version=$JUJU_AGENT_VERSION $OSM_VCA_CLOUDNAME $OSM_STACK_NAME" + fi + [ $(juju controllers | awk "/^${OSM_STACK_NAME}[\*| ]/{print $1}"|wc -l) -eq 1 ] || FATAL "Juju installation failed" + juju controller-config features=[k8s-operators] +} + +function juju_addk8s() { + cat $HOME/.kube/config | juju add-k8s $OSM_VCA_K8S_CLOUDNAME --controller $OSM_STACK_NAME --storage openebs-hostpath +} + +function juju_createcontroller_k8s(){ + cat $HOME/.kube/config | juju add-k8s $OSM_VCA_K8S_CLOUDNAME --client + juju bootstrap $OSM_VCA_K8S_CLOUDNAME $OSM_STACK_NAME \ + --config controller-service-type=loadbalancer \ + --agent-version=$JUJU_AGENT_VERSION +} + + +function juju_addlxd_cloud(){ + mkdir -p /tmp/.osm + OSM_VCA_CLOUDNAME="lxd-cloud" + LXDENDPOINT=$DEFAULT_IP + LXD_CLOUD=/tmp/.osm/lxd-cloud.yaml + LXD_CREDENTIALS=/tmp/.osm/lxd-credentials.yaml + + cat << EOF > $LXD_CLOUD +clouds: + $OSM_VCA_CLOUDNAME: + type: lxd + auth-types: [certificate] + endpoint: "https://$LXDENDPOINT:8443" + config: + ssl-hostname-verification: false +EOF + openssl req -nodes -new -x509 -keyout /tmp/.osm/client.key -out /tmp/.osm/client.crt -days 365 -subj "/C=FR/ST=Nice/L=Nice/O=ETSI/OU=OSM/CN=osm.etsi.org" + local server_cert=`cat /var/snap/lxd/common/lxd/server.crt | sed 's/^/ /'` + local client_cert=`cat /tmp/.osm/client.crt | sed 's/^/ /'` + local client_key=`cat /tmp/.osm/client.key | sed 's/^/ /'` + + cat << EOF > $LXD_CREDENTIALS +credentials: + $OSM_VCA_CLOUDNAME: + lxd-cloud: + auth-type: certificate + server-cert: | +$server_cert + client-cert: | +$client_cert + client-key: | +$client_key +EOF + lxc config trust add local: /tmp/.osm/client.crt + juju add-cloud -c $OSM_STACK_NAME $OSM_VCA_CLOUDNAME $LXD_CLOUD --force + juju add-credential -c $OSM_STACK_NAME $OSM_VCA_CLOUDNAME -f $LXD_CREDENTIALS + sg lxd -c "lxd waitready" + juju controller-config features=[k8s-operators] +} + + +function juju_createproxy() { + check_install_iptables_persistent + + if ! sudo iptables -t nat -C PREROUTING -p tcp -m tcp -d $DEFAULT_IP --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST; then + sudo iptables -t nat -A PREROUTING -p tcp -m tcp -d $DEFAULT_IP --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST + sudo netfilter-persistent save + fi +} + +function docker_login() { + echo "Docker login" + sg docker -c "docker login -u ${DOCKER_REGISTRY_USER} -p ${DOCKER_REGISTRY_PASSWORD}" +} + +function generate_docker_images() { + echo "Pulling and generating docker images" + [ -n "${DOCKER_REGISTRY_URL}" ] && docker_login + + echo "Pulling docker images" + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q KAFKA ; then + sg docker -c "docker pull wurstmeister/zookeeper" || FATAL "cannot get zookeeper docker image" + sg docker -c "docker pull wurstmeister/kafka:${KAFKA_TAG}" || FATAL "cannot get kafka docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q MONGO ; then + sg docker -c "docker pull mongo" || FATAL "cannot get mongo docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q PROMETHEUS ; then + sg docker -c "docker pull prom/prometheus:${PROMETHEUS_TAG}" || FATAL "cannot get prometheus docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q PROMETHEUS-CADVISOR ; then + sg docker -c "docker pull google/cadvisor:${PROMETHEUS_CADVISOR_TAG}" || FATAL "cannot get prometheus cadvisor docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q GRAFANA ; then + sg docker -c "docker pull grafana/grafana:${GRAFANA_TAG}" || FATAL "cannot get grafana docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q NBI || echo $TO_REBUILD | grep -q KEYSTONE-DB ; then + sg docker -c "docker pull mariadb:${KEYSTONEDB_TAG}" || FATAL "cannot get keystone-db docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q RO ; then + sg docker -c "docker pull mysql:5" || FATAL "cannot get mysql docker image" + fi + + if [ -n "$PULL_IMAGES" ]; then + echo "Pulling OSM docker images" + for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA osmclient; do + module_lower=${module,,} + if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then + continue + fi + module_tag="${OSM_DOCKER_TAG}" + if [ -n "${MODULE_DOCKER_TAG}" ] && echo $TO_REBUILD | grep -q $module ; then + module_tag="${MODULE_DOCKER_TAG}" + fi + echo "Pulling ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag} docker image" + sg docker -c "docker pull ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag}" || FATAL "cannot pull $module docker image" + done + else + _build_from=$COMMIT_ID + [ -z "$_build_from" ] && _build_from="latest" + echo "OSM Docker images generated from $_build_from" + + for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA; do + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q ${module} ; then + module_lower=${module,,} + if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then + continue + fi + git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/$module + git -C ${LWTEMPDIR}/${module} checkout ${COMMIT_ID} + sg docker -c "docker build ${LWTEMPDIR}/${module} -f ${LWTEMPDIR}/${module}/docker/Dockerfile -t ${DOCKER_USER}/${module_lower} --no-cache" || FATAL "cannot build ${module} docker image" + fi + done + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q osmclient; then + BUILD_ARGS+=(--build-arg REPOSITORY="$REPOSITORY") + BUILD_ARGS+=(--build-arg RELEASE="$RELEASE") + BUILD_ARGS+=(--build-arg REPOSITORY_KEY="$REPOSITORY_KEY") + BUILD_ARGS+=(--build-arg REPOSITORY_BASE="$REPOSITORY_BASE") + sg docker -c "docker build -t ${DOCKER_USER}/osmclient ${BUILD_ARGS[@]} -f $OSM_DEVOPS/docker/osmclient ." + fi + echo "Finished generation of docker images" + fi + + echo "Finished pulling and generating docker images" +} + +function cmp_overwrite() { + file1="$1" + file2="$2" + if ! $(cmp "${file1}" "${file2}" >/dev/null 2>&1); then + if [ -f "${file2}" ]; then + ask_user "The file ${file2} already exists. Overwrite (y/N)? " n && cp -b ${file1} ${file2} + else + cp -b ${file1} ${file2} + fi + fi +} + +function generate_docker_compose_files() { + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/docker-compose.yaml $OSM_DOCKER_WORK_DIR/docker-compose.yaml + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/docker-compose-ngui.yaml $OSM_DOCKER_WORK_DIR/docker-compose-ui.yaml + if [ -n "$INSTALL_PLA" ]; then + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/osm_pla/docker-compose.yaml $OSM_DOCKER_WORK_DIR/osm_pla/docker-compose.yaml + fi +} + +function generate_k8s_manifest_files() { + #Kubernetes resources + $WORKDIR_SUDO cp -bR ${OSM_DEVOPS}/installers/docker/osm_pods $OSM_DOCKER_WORK_DIR + $WORKDIR_SUDO rm -f $OSM_K8S_WORK_DIR/mongo.yaml +} + +function generate_prometheus_grafana_files() { + [ -n "$KUBERNETES" ] && return + # Prometheus files + $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/prometheus + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/prometheus/prometheus.yml $OSM_DOCKER_WORK_DIR/prometheus/prometheus.yml + + # Grafana files + $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/grafana + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/dashboards-osm.yml $OSM_DOCKER_WORK_DIR/grafana/dashboards-osm.yml + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/datasource-prometheus.yml $OSM_DOCKER_WORK_DIR/grafana/datasource-prometheus.yml + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/osm-sample-dashboard.json $OSM_DOCKER_WORK_DIR/grafana/osm-sample-dashboard.json + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/osm-system-dashboard.json $OSM_DOCKER_WORK_DIR/grafana/osm-system-dashboard.json + + # Prometheus Exporters files + $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/prometheus_exporters + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/prometheus_exporters/node_exporter.service $OSM_DOCKER_WORK_DIR/prometheus_exporters/node_exporter.service +} + +function generate_docker_env_files() { + echo "Doing a backup of existing env files" + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/keystone-db.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/keystone.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/lcm.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/mon.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/nbi.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/pol.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/ro-db.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/ro.env{,~} + + echo "Generating docker env files" + # LCM + if [ ! -f $OSM_DOCKER_WORK_DIR/lcm.env ]; then + echo "OSMLCM_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_HOST" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_HOST=${OSM_VCA_HOST}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_HOST.*|OSMLCM_VCA_HOST=$OSM_VCA_HOST|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_SECRET" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_SECRET=${OSM_VCA_SECRET}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_SECRET.*|OSMLCM_VCA_SECRET=$OSM_VCA_SECRET|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_PUBKEY" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_PUBKEY=${OSM_VCA_PUBKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_PUBKEY.*|OSMLCM_VCA_PUBKEY=${OSM_VCA_PUBKEY}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_CACERT" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_CACERT=${OSM_VCA_CACERT}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_CACERT.*|OSMLCM_VCA_CACERT=${OSM_VCA_CACERT}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if [ -n "$OSM_VCA_APIPROXY" ]; then + if ! grep -Fq "OSMLCM_VCA_APIPROXY" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_APIPROXY.*|OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + fi + + if ! grep -Fq "OSMLCM_VCA_ENABLEOSUPGRADE" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "# OSMLCM_VCA_ENABLEOSUPGRADE=false" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_APTMIRROR" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "# OSMLCM_VCA_APTMIRROR=http://archive.ubuntu.com/ubuntu/" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_CLOUD" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_CLOUD=${OSM_VCA_CLOUDNAME}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_CLOUD.*|OSMLCM_VCA_CLOUD=${OSM_VCA_CLOUDNAME}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_K8S_CLOUD" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_K8S_CLOUD=${OSM_VCA_K8S_CLOUDNAME}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_K8S_CLOUD.*|OSMLCM_VCA_K8S_CLOUD=${OSM_VCA_K8S_CLOUDNAME}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + # RO + MYSQL_ROOT_PASSWORD=$(generate_secret) + if [ ! -f $OSM_DOCKER_WORK_DIR/ro-db.env ]; then + echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/ro-db.env + fi + if [ ! -f $OSM_DOCKER_WORK_DIR/ro.env ]; then + echo "RO_DB_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/ro.env + fi + if ! grep -Fq "OSMRO_DATABASE_COMMONKEY" $OSM_DOCKER_WORK_DIR/ro.env; then + echo "OSMRO_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/ro.env + fi + + # Keystone + KEYSTONE_DB_PASSWORD=$(generate_secret) + SERVICE_PASSWORD=$(generate_secret) + if [ ! -f $OSM_DOCKER_WORK_DIR/keystone-db.env ]; then + echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/keystone-db.env + fi + if [ ! -f $OSM_DOCKER_WORK_DIR/keystone.env ]; then + echo "ROOT_DB_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/keystone.env + echo "KEYSTONE_DB_PASSWORD=${KEYSTONE_DB_PASSWORD}" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/keystone.env + echo "SERVICE_PASSWORD=${SERVICE_PASSWORD}" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/keystone.env + fi + + # NBI + if [ ! -f $OSM_DOCKER_WORK_DIR/nbi.env ]; then + echo "OSMNBI_AUTHENTICATION_SERVICE_PASSWORD=${SERVICE_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/nbi.env + echo "OSMNBI_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/nbi.env + fi + + # MON + if [ ! -f $OSM_DOCKER_WORK_DIR/mon.env ]; then + echo "OSMMON_KEYSTONE_SERVICE_PASSWORD=${SERVICE_PASSWORD}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + echo "OSMMON_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + echo "OSMMON_SQL_DATABASE_URI=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/mon" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OS_NOTIFIER_URI" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OS_NOTIFIER_URI=http://${DEFAULT_IP}:8662" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OS_NOTIFIER_URI.*|OS_NOTIFIER_URI=http://$DEFAULT_IP:8662|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_HOST" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_HOST=${OSM_VCA_HOST}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_HOST.*|OSMMON_VCA_HOST=$OSM_VCA_HOST|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_SECRET" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_SECRET=${OSM_VCA_SECRET}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_SECRET.*|OSMMON_VCA_SECRET=$OSM_VCA_SECRET|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_CACERT" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_CACERT=${OSM_VCA_CACERT}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_CACERT.*|OSMMON_VCA_CACERT=${OSM_VCA_CACERT}|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + + # POL + if [ ! -f $OSM_DOCKER_WORK_DIR/pol.env ]; then + echo "OSMPOL_SQL_DATABASE_URI=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/pol" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/pol.env + fi + + echo "Finished generation of docker env files" +} + +function generate_osmclient_script () { + echo "docker run -ti --network net${OSM_STACK_NAME} ${DOCKER_REGISTRY_URL}${DOCKER_USER}/osmclient:${OSM_DOCKER_TAG}" | $WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/osm + $WORKDIR_SUDO chmod +x "$OSM_DOCKER_WORK_DIR/osm" + echo "osmclient sidecar container can be found at: $OSM_DOCKER_WORK_DIR/osm" +} + +#installs kubernetes packages +function install_kube() { + sudo apt-get update && sudo apt-get install -y apt-transport-https + curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - + sudo add-apt-repository "deb https://apt.kubernetes.io/ kubernetes-xenial main" + sudo apt-get update + echo "Installing Kubernetes Packages ..." + sudo apt-get install -y kubelet=1.15.0-00 kubeadm=1.15.0-00 kubectl=1.15.0-00 + sudo apt-mark hold kubelet kubeadm kubectl +} + +#initializes kubernetes control plane +function init_kubeadm() { + sudo swapoff -a + sudo sed -i.bak '/.*none.*swap/s/^\(.*\)$/#\1/g' /etc/fstab + sudo kubeadm init --config $1 + sleep 5 +} + +function kube_config_dir() { + [ ! -d $K8S_MANIFEST_DIR ] && FATAL "Cannot Install Kubernetes" + mkdir -p $HOME/.kube + sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config +} + +function install_k8s_storageclass() { + echo "Installing OpenEBS" + kubectl create ns openebs + helm repo add openebs https://openebs.github.io/charts + helm repo update + helm install --namespace openebs openebs openebs/openebs --version 1.12.0 + helm ls -n openebs + local storageclass_timeout=400 + local counter=0 + local storageclass_ready="" + echo "Waiting for storageclass" + while (( counter < storageclass_timeout )) + do + kubectl get storageclass openebs-hostpath &> /dev/null + + if [ $? -eq 0 ] ; then + echo "Storageclass available" + storageclass_ready="y" + break + else + counter=$((counter + 15)) + sleep 15 + fi + done + [ -n "$storageclass_ready" ] || FATAL "Storageclass not ready after $storageclass_timeout seconds. Cannot install openebs" + kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' +} + +function install_k8s_metallb() { + METALLB_IP_RANGE=$DEFAULT_IP-$DEFAULT_IP + cat ${OSM_DEVOPS}/installers/k8s/metallb/metallb.yaml | kubectl apply -f - + echo "apiVersion: v1 +kind: ConfigMap +metadata: + namespace: metallb-system + name: config +data: + config: | + address-pools: + - name: default + protocol: layer2 + addresses: + - $METALLB_IP_RANGE" | kubectl apply -f - +} +#deploys flannel as daemonsets +function deploy_cni_provider() { + CNI_DIR="$(mktemp -d -q --tmpdir "flannel.XXXXXX")" + trap 'rm -rf "${CNI_DIR}"' EXIT + wget -q https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml -P $CNI_DIR + kubectl apply -f $CNI_DIR + [ $? -ne 0 ] && FATAL "Cannot Install Flannel" +} + +#creates secrets from env files which will be used by containers +function kube_secrets(){ + kubectl create ns $OSM_STACK_NAME + kubectl create secret generic lcm-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/lcm.env + kubectl create secret generic mon-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/mon.env + kubectl create secret generic nbi-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/nbi.env + kubectl create secret generic ro-db-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/ro-db.env + kubectl create secret generic ro-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/ro.env + kubectl create secret generic keystone-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/keystone.env + kubectl create secret generic pol-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/pol.env +} + +#taints K8s master node +function taint_master_node() { + K8S_MASTER=$(kubectl get nodes | awk '$3~/master/'| awk '{print $1}') + kubectl taint node $K8S_MASTER node-role.kubernetes.io/master:NoSchedule- + sleep 5 +} + +#deploys osm pods and services +function deploy_osm_services() { + kubectl apply -n $OSM_STACK_NAME -f $OSM_K8S_WORK_DIR +} + +#deploy charmed services +function deploy_charmed_services() { + juju add-model $OSM_STACK_NAME $OSM_VCA_K8S_CLOUDNAME + juju deploy ch:mongodb-k8s -m $OSM_STACK_NAME +} + +function deploy_osm_pla_service() { + # corresponding to namespace_vol + $WORKDIR_SUDO sed -i "s#path: /var/lib/osm#path: $OSM_NAMESPACE_VOL#g" $OSM_DOCKER_WORK_DIR/osm_pla/pla.yaml + # corresponding to deploy_osm_services + kubectl apply -n $OSM_STACK_NAME -f $OSM_DOCKER_WORK_DIR/osm_pla +} + +#Install Helm v3 +function install_helm() { + helm > /dev/null 2>&1 + if [ $? != 0 ] ; then + # Helm is not installed. Install helm + echo "Helm is not installed, installing ..." + curl https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz --output helm-v3.6.3.tar.gz + tar -zxvf helm-v3.6.3.tar.gz + sudo mv linux-amd64/helm /usr/local/bin/helm + rm -r linux-amd64 + rm helm-v3.6.3.tar.gz + helm repo add stable https://charts.helm.sh/stable + helm repo update + fi +} + +function parse_yaml() { + TAG=$1 + shift + services=$@ + for module in $services; do + if [ "$module" == "pla" ]; then + if [ -n "$INSTALL_PLA" ]; then + echo "Updating K8s manifest file from opensourcemano\/${module}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${module}:${TAG}" + $WORKDIR_SUDO sed -i "s#opensourcemano/pla:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/pla:${TAG}#g" ${OSM_DOCKER_WORK_DIR}/osm_pla/pla.yaml + fi + else + echo "Updating K8s manifest file from opensourcemano\/${module}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${module}:${TAG}" + $WORKDIR_SUDO sed -i "s#opensourcemano/${module}:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module}:${TAG}#g" ${OSM_K8S_WORK_DIR}/${module}.yaml + fi + done +} + +function update_manifest_files() { + osm_services="nbi lcm ro pol mon ng-ui keystone pla" + list_of_services="" + for module in $osm_services; do + module_upper="${module^^}" + if ! echo $TO_REBUILD | grep -q $module_upper ; then + list_of_services="$list_of_services $module" + fi + done + if [ ! "$OSM_DOCKER_TAG" == "10" ]; then + parse_yaml $OSM_DOCKER_TAG $list_of_services + fi + if [ -n "$MODULE_DOCKER_TAG" ]; then + parse_yaml $MODULE_DOCKER_TAG $list_of_services_to_rebuild + fi +} + +function namespace_vol() { + osm_services="nbi lcm ro pol mon kafka mysql prometheus" + for osm in $osm_services; do + $WORKDIR_SUDO sed -i "s#path: /var/lib/osm#path: $OSM_NAMESPACE_VOL#g" $OSM_K8S_WORK_DIR/$osm.yaml + done +} + +function init_docker_swarm() { + if [ "${DEFAULT_MTU}" != "1500" ]; then + DOCKER_NETS=`sg docker -c "docker network list" | awk '{print $2}' | egrep -v "^ID$" | paste -d " " -s` + DOCKER_GW_NET=`sg docker -c "docker network inspect ${DOCKER_NETS}" | grep Subnet | awk -F\" '{print $4}' | egrep "^172" | sort -u | tail -1 | awk -F\. '{if ($2 != 255) print $1"."$2+1"."$3"."$4; else print "-1";}'` + sg docker -c "docker network create --subnet ${DOCKER_GW_NET} --opt com.docker.network.bridge.name=docker_gwbridge --opt com.docker.network.bridge.enable_icc=false --opt com.docker.network.bridge.enable_ip_masquerade=true --opt com.docker.network.driver.mtu=${DEFAULT_MTU} docker_gwbridge" + fi + sg docker -c "docker swarm init --advertise-addr ${DEFAULT_IP}" + return 0 +} + +function create_docker_network() { + echo "creating network" + sg docker -c "docker network create --driver=overlay --attachable --opt com.docker.network.driver.mtu=${DEFAULT_MTU} net${OSM_STACK_NAME}" + echo "creating network DONE" +} + +function deploy_lightweight() { + + echo "Deploying lightweight build" + OSM_NBI_PORT=9999 + OSM_RO_PORT=9090 + OSM_KEYSTONE_PORT=5000 + OSM_UI_PORT=80 + OSM_MON_PORT=8662 + OSM_PROM_PORT=9090 + OSM_PROM_CADVISOR_PORT=8080 + OSM_PROM_HOSTPORT=9091 + OSM_GRAFANA_PORT=3000 + [ -n "$INSTALL_ELK" ] && OSM_ELK_PORT=5601 + #[ -n "$INSTALL_PERFMON" ] && OSM_PM_PORT=3000 + + if [ -n "$NO_HOST_PORTS" ]; then + OSM_PORTS+=(OSM_NBI_PORTS=$OSM_NBI_PORT) + OSM_PORTS+=(OSM_RO_PORTS=$OSM_RO_PORT) + OSM_PORTS+=(OSM_KEYSTONE_PORTS=$OSM_KEYSTONE_PORT) + OSM_PORTS+=(OSM_UI_PORTS=$OSM_UI_PORT) + OSM_PORTS+=(OSM_MON_PORTS=$OSM_MON_PORT) + OSM_PORTS+=(OSM_PROM_PORTS=$OSM_PROM_PORT) + OSM_PORTS+=(OSM_PROM_CADVISOR_PORTS=$OSM_PROM_CADVISOR_PORT) + OSM_PORTS+=(OSM_GRAFANA_PORTS=$OSM_GRAFANA_PORT) + #[ -n "$INSTALL_PERFMON" ] && OSM_PORTS+=(OSM_PM_PORTS=$OSM_PM_PORT) + [ -n "$INSTALL_ELK" ] && OSM_PORTS+=(OSM_ELK_PORTS=$OSM_ELK_PORT) + else + OSM_PORTS+=(OSM_NBI_PORTS=$OSM_NBI_PORT:$OSM_NBI_PORT) + OSM_PORTS+=(OSM_RO_PORTS=$OSM_RO_PORT:$OSM_RO_PORT) + OSM_PORTS+=(OSM_KEYSTONE_PORTS=$OSM_KEYSTONE_PORT:$OSM_KEYSTONE_PORT) + OSM_PORTS+=(OSM_UI_PORTS=$OSM_UI_PORT:$OSM_UI_PORT) + OSM_PORTS+=(OSM_MON_PORTS=$OSM_MON_PORT:$OSM_MON_PORT) + OSM_PORTS+=(OSM_PROM_PORTS=$OSM_PROM_HOSTPORT:$OSM_PROM_PORT) + OSM_PORTS+=(OSM_PROM_CADVISOR_PORTS=$OSM_PROM_CADVISOR_PORT:$OSM_PROM_CADVISOR_PORT) + OSM_PORTS+=(OSM_GRAFANA_PORTS=$OSM_GRAFANA_PORT:$OSM_GRAFANA_PORT) + #[ -n "$INSTALL_PERFMON" ] && OSM_PORTS+=(OSM_PM_PORTS=$OSM_PM_PORT:$OSM_PM_PORT) + [ -n "$INSTALL_ELK" ] && OSM_PORTS+=(OSM_ELK_PORTS=$OSM_ELK_PORT:$OSM_ELK_PORT) + fi + echo "export ${OSM_PORTS[@]}" | $WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export OSM_NETWORK=net${OSM_STACK_NAME}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export TAG=${OSM_DOCKER_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export DOCKER_USER=${DOCKER_USER}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export KAFKA_TAG=${KAFKA_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export PROMETHEUS_TAG=${PROMETHEUS_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export KEYSTONEDB_TAG=${KEYSTONEDB_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export PROMETHEUS_CADVISOR_TAG=${PROMETHEUS_CADVISOR_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export GRAFANA_TAG=${GRAFANA_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + + pushd $OSM_DOCKER_WORK_DIR + if [ -n "$INSTALL_PLA" ]; then + track deploy_osm_pla + sg docker -c ". ./osm_ports.sh; docker stack deploy -c $OSM_DOCKER_WORK_DIR/docker-compose.yaml -c $OSM_DOCKER_WORK_DIR/docker-compose-ui.yaml -c $OSM_DOCKER_WORK_DIR/osm_pla/docker-compose.yaml $OSM_STACK_NAME" + else + sg docker -c ". ./osm_ports.sh; docker stack deploy -c $OSM_DOCKER_WORK_DIR/docker-compose.yaml -c $OSM_DOCKER_WORK_DIR/docker-compose-ui.yaml $OSM_STACK_NAME" + fi + popd + + echo "Finished deployment of lightweight build" +} + +function deploy_elk() { + echo "Pulling docker images for ELK" + sg docker -c "docker pull docker.elastic.co/elasticsearch/elasticsearch-oss:${ELASTIC_VERSION}" || FATAL "cannot get elasticsearch docker image" + sg docker -c "docker pull docker.elastic.co/beats/metricbeat:${ELASTIC_VERSION}" || FATAL "cannot get metricbeat docker image" + sg docker -c "docker pull docker.elastic.co/beats/filebeat:${ELASTIC_VERSION}" || FATAL "cannot get filebeat docker image" + sg docker -c "docker pull docker.elastic.co/kibana/kibana-oss:${ELASTIC_VERSION}" || FATAL "cannot get kibana docker image" + sg docker -c "docker pull bobrik/curator:${ELASTIC_CURATOR_VERSION}" || FATAL "cannot get curator docker image" + echo "Finished pulling elk docker images" + $WORKDIR_SUDO mkdir -p "$OSM_DOCKER_WORK_DIR/osm_elk" + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/osm_elk/* $OSM_DOCKER_WORK_DIR/osm_elk + remove_stack osm_elk + echo "Deploying ELK stack" + sg docker -c "OSM_NETWORK=net${OSM_STACK_NAME} docker stack deploy -c $OSM_DOCKER_WORK_DIR/osm_elk/docker-compose.yml osm_elk" + echo "Waiting for ELK stack to be up and running" + time=0 + step=5 + timelength=40 + elk_is_up=1 + while [ $time -le $timelength ]; do + if [[ $(curl -f -XGET http://127.0.0.1:5601/status -I 2>/dev/null | grep "HTTP/1.1 200 OK" | wc -l ) -eq 1 ]]; then + elk_is_up=0 + break + fi + sleep $step + time=$((time+step)) + done + if [ $elk_is_up -eq 0 ]; then + echo "ELK is up and running. Trying to create index pattern..." + #Create index pattern + curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/saved_objects/index-pattern/filebeat-*" \ + -d"{\"attributes\":{\"title\":\"filebeat-*\",\"timeFieldName\":\"@timestamp\"}}" 2>/dev/null + #Make it the default index + curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/kibana/settings/defaultIndex" \ + -d"{\"value\":\"filebeat-*\"}" 2>/dev/null + else + echo "Cannot connect to Kibana to create index pattern." + echo "Once Kibana is running, you can use the following instructions to create index pattern:" + echo 'curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/saved_objects/index-pattern/filebeat-*" \ + -d"{\"attributes\":{\"title\":\"filebeat-*\",\"timeFieldName\":\"@timestamp\"}}"' + echo 'curl -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/kibana/settings/defaultIndex" \ + -d"{\"value\":\"filebeat-*\"}"' + fi + echo "Finished deployment of ELK stack" + return 0 +} + +function add_local_k8scluster() { + /usr/bin/osm --all-projects vim-create \ + --name _system-osm-vim \ + --account_type dummy \ + --auth_url http://dummy \ + --user osm --password osm --tenant osm \ + --description "dummy" \ + --config '{management_network_name: mgmt}' + /usr/bin/osm --all-projects k8scluster-add \ + --creds ${HOME}/.kube/config \ + --vim _system-osm-vim \ + --k8s-nets '{"net1": null}' \ + --version '1.15' \ + --description "OSM Internal Cluster" \ + _system-osm-k8s +} + +function install_lightweight() { + track checkingroot + [ "$USER" == "root" ] && FATAL "You are running the installer as root. The installer is prepared to be executed as a normal user with sudo privileges." + track noroot + + if [ -n "$KUBERNETES" ]; then + [ -z "$ASSUME_YES" ] && ! ask_user "The installation will do the following + 1. Install and configure LXD + 2. Install juju + 3. Install docker CE + 4. Disable swap space + 5. Install and initialize Kubernetes + as pre-requirements. + Do you want to proceed (Y/n)? " y && echo "Cancelled!" && exit 1 + + else + [ -z "$ASSUME_YES" ] && ! ask_user "The installation will configure LXD, install juju, install docker CE and init a docker swarm, as pre-requirements. Do you want to proceed (Y/n)? " y && echo "Cancelled!" && exit 1 + fi + track proceed + + echo "Installing lightweight build of OSM" + LWTEMPDIR="$(mktemp -d -q --tmpdir "installosmlight.XXXXXX")" + trap 'rm -rf "${LWTEMPDIR}"' EXIT + DEFAULT_IF=$(ip route list|awk '$1=="default" {print $5; exit}') + [ -z "$DEFAULT_IF" ] && DEFAULT_IF=$(route -n |awk '$1~/^0.0.0.0/ {print $8; exit}') + [ -z "$DEFAULT_IF" ] && FATAL "Not possible to determine the interface with the default route 0.0.0.0" + DEFAULT_IP=`ip -o -4 a s ${DEFAULT_IF} |awk '{split($4,a,"/"); print a[1]}'` + [ -z "$DEFAULT_IP" ] && FATAL "Not possible to determine the IP address of the interface with the default route" + DEFAULT_MTU=$(ip addr show ${DEFAULT_IF} | perl -ne 'if (/mtu\s(\d+)/) {print $1;}') + + # if no host is passed in, we need to install lxd/juju, unless explicilty asked not to + if [ -z "$OSM_VCA_HOST" ] && [ -z "$INSTALL_NOLXD" ] && [ -z "$LXD_CLOUD_FILE" ]; then + need_packages_lw="snapd" + echo -e "Checking required packages: $need_packages_lw" + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "One or several required packages are not installed. Updating apt cache requires root privileges." \ + || sudo apt-get update \ + || FATAL "failed to run apt-get update" + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "Installing $need_packages_lw requires root privileges." \ + || sudo apt-get install -y $need_packages_lw \ + || FATAL "failed to install $need_packages_lw" + install_lxd + fi + + track prereqok + + [ -n "$INSTALL_NODOCKER" ] || (install_docker_ce && track docker_ce) + + echo "Creating folders for installation" + [ ! -d "$OSM_DOCKER_WORK_DIR" ] && $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR + [ ! -d "$OSM_DOCKER_WORK_DIR/osm_pla" -a -n "$INSTALL_PLA" ] && $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/osm_pla + [ -n "$KUBERNETES" ] && $WORKDIR_SUDO cp -b $OSM_DEVOPS/installers/docker/cluster-config.yaml $OSM_DOCKER_WORK_DIR/cluster-config.yaml + + #Installs Kubernetes + if [ -n "$KUBERNETES" ]; then + install_kube + track install_k8s + init_kubeadm $OSM_DOCKER_WORK_DIR/cluster-config.yaml + kube_config_dir + track init_k8s + if [ -n "$INSTALL_K8S_MONITOR" ]; then + # uninstall OSM MONITORING + uninstall_k8s_monitoring + track uninstall_k8s_monitoring + fi + #remove old namespace + remove_k8s_namespace $OSM_STACK_NAME + deploy_cni_provider + taint_master_node + install_helm + track install_helm + install_k8s_storageclass + track k8s_storageclass + install_k8s_metallb + track k8s_metallb + else + #install_docker_compose + [ -n "$INSTALL_NODOCKER" ] || init_docker_swarm + track docker_swarm + fi + + [ -z "$INSTALL_NOJUJU" ] && install_juju + track juju_install + + if [ -z "$OSM_VCA_HOST" ]; then + if [ -z "$CONTROLLER_NAME" ]; then + + if [ -n "$KUBERNETES" ]; then + juju_createcontroller_k8s + juju_addlxd_cloud + else + if [ -n "$LXD_CLOUD_FILE" ]; then + [ -z "$LXD_CRED_FILE" ] && FATAL "The installer needs the LXD credential yaml if the LXD is external" + OSM_VCA_CLOUDNAME="lxd-cloud" + juju add-cloud $OSM_VCA_CLOUDNAME $LXD_CLOUD_FILE --force || juju update-cloud $OSM_VCA_CLOUDNAME --client -f $LXD_CLOUD_FILE + juju add-credential $OSM_VCA_CLOUDNAME -f $LXD_CRED_FILE || juju update-credential $OSM_VCA_CLOUDNAME lxd-cloud-creds -f $LXD_CRED_FILE + fi + juju_createcontroller + juju_createproxy + fi + else + OSM_VCA_CLOUDNAME="lxd-cloud" + if [ -n "$LXD_CLOUD_FILE" ]; then + [ -z "$LXD_CRED_FILE" ] && FATAL "The installer needs the LXD credential yaml if the LXD is external" + juju add-cloud -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME $LXD_CLOUD_FILE --force || juju update-cloud lxd-cloud -c $CONTROLLER_NAME -f $LXD_CLOUD_FILE + juju add-credential -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME -f $LXD_CRED_FILE || juju update-credential lxd-cloud -c $CONTROLLER_NAME -f $LXD_CRED_FILE + else + mkdir -p ~/.osm + cat << EOF > ~/.osm/lxd-cloud.yaml +clouds: + lxd-cloud: + type: lxd + auth-types: [certificate] + endpoint: "https://$DEFAULT_IP:8443" + config: + ssl-hostname-verification: false +EOF + openssl req -nodes -new -x509 -keyout ~/.osm/client.key -out ~/.osm/client.crt -days 365 -subj "/C=FR/ST=Nice/L=Nice/O=ETSI/OU=OSM/CN=osm.etsi.org" + local server_cert=`cat /var/snap/lxd/common/lxd/server.crt | sed 's/^/ /'` + local client_cert=`cat ~/.osm/client.crt | sed 's/^/ /'` + local client_key=`cat ~/.osm/client.key | sed 's/^/ /'` + cat << EOF > ~/.osm/lxd-credentials.yaml +credentials: + lxd-cloud: + lxd-cloud: + auth-type: certificate + server-cert: | +$server_cert + client-cert: | +$client_cert + client-key: | +$client_key +EOF + lxc config trust add local: ~/.osm/client.crt + juju add-cloud -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME ~/.osm/lxd-cloud.yaml --force || juju update-cloud lxd-cloud -c $CONTROLLER_NAME -f ~/.osm/lxd-cloud.yaml + juju add-credential -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME -f ~/.osm/lxd-credentials.yaml || juju update-credential lxd-cloud -c $CONTROLLER_NAME -f ~/.osm/lxd-credentials.yaml + fi + fi + [ -z "$CONTROLLER_NAME" ] && OSM_VCA_HOST=`sg lxd -c "juju show-controller $OSM_STACK_NAME"|grep api-endpoints|awk -F\' '{print $2}'|awk -F\: '{print $1}'` + [ -n "$CONTROLLER_NAME" ] && OSM_VCA_HOST=`juju show-controller $CONTROLLER_NAME |grep api-endpoints|awk -F\' '{print $2}'|awk -F\: '{print $1}'` + [ -z "$OSM_VCA_HOST" ] && FATAL "Cannot obtain juju controller IP address" + fi + track juju_controller + + if [ -z "$OSM_VCA_SECRET" ]; then + [ -z "$CONTROLLER_NAME" ] && OSM_VCA_SECRET=$(parse_juju_password $OSM_STACK_NAME) + [ -n "$CONTROLLER_NAME" ] && OSM_VCA_SECRET=$(parse_juju_password $CONTROLLER_NAME) + [ -z "$OSM_VCA_SECRET" ] && FATAL "Cannot obtain juju secret" + fi + if [ -z "$OSM_VCA_PUBKEY" ]; then + OSM_VCA_PUBKEY=$(cat $HOME/.local/share/juju/ssh/juju_id_rsa.pub) + [ -z "$OSM_VCA_PUBKEY" ] && FATAL "Cannot obtain juju public key" + fi + if [ -z "$OSM_VCA_CACERT" ]; then + [ -z "$CONTROLLER_NAME" ] && OSM_VCA_CACERT=$(juju controllers --format json | jq -r --arg controller $OSM_STACK_NAME '.controllers[$controller]["ca-cert"]' | base64 | tr -d \\n) + [ -n "$CONTROLLER_NAME" ] && OSM_VCA_CACERT=$(juju controllers --format json | jq -r --arg controller $CONTROLLER_NAME '.controllers[$controller]["ca-cert"]' | base64 | tr -d \\n) + [ -z "$OSM_VCA_CACERT" ] && FATAL "Cannot obtain juju CA certificate" + fi + + # Set OSM_VCA_APIPROXY only when it is not a k8s installation + if [ -z "$KUBERNETES" ]; then + if [ -z "$OSM_VCA_APIPROXY" ]; then + OSM_VCA_APIPROXY=$DEFAULT_IP + [ -z "$OSM_VCA_APIPROXY" ] && FATAL "Cannot obtain juju api proxy" + fi + juju_createproxy + fi + track juju + + if [ -z "$OSM_DATABASE_COMMONKEY" ]; then + OSM_DATABASE_COMMONKEY=$(generate_secret) + [ -z "OSM_DATABASE_COMMONKEY" ] && FATAL "Cannot generate common db secret" + fi + + # Deploy OSM services + [ -z "$DOCKER_NOBUILD" ] && generate_docker_images + track docker_build + + if [ -n "$KUBERNETES" ]; then + generate_k8s_manifest_files + else + generate_docker_compose_files + fi + track manifest_files + generate_prometheus_grafana_files + generate_docker_env_files + track env_files + + if [ -n "$KUBERNETES" ]; then + deploy_charmed_services + kube_secrets + update_manifest_files + namespace_vol + deploy_osm_services + if [ -n "$INSTALL_PLA"]; then + # optional PLA install + deploy_osm_pla_service + track deploy_osm_pla + fi + track deploy_osm_services_k8s + if [ -n "$INSTALL_K8S_MONITOR" ]; then + # install OSM MONITORING + install_k8s_monitoring + track install_k8s_monitoring + fi + else + # remove old stack + remove_stack $OSM_STACK_NAME + create_docker_network + deploy_lightweight + generate_osmclient_script + track docker_deploy + install_prometheus_nodeexporter + track nodeexporter + [ -n "$INSTALL_VIMEMU" ] && install_vimemu && track vimemu + [ -n "$INSTALL_ELK" ] && deploy_elk && track elk + fi + + [ -z "$INSTALL_NOHOSTCLIENT" ] && install_osmclient + track osmclient + + echo -e "Checking OSM health state..." + if [ -n "$KUBERNETES" ]; then + $OSM_DEVOPS/installers/osm_health.sh -s ${OSM_STACK_NAME} -k || \ + echo -e "OSM is not healthy, but will probably converge to a healthy state soon." && \ + echo -e "Check OSM status with: kubectl -n ${OSM_STACK_NAME} get all" && \ + track osm_unhealthy + else + $OSM_DEVOPS/installers/osm_health.sh -s ${OSM_STACK_NAME} || \ + echo -e "OSM is not healthy, but will probably converge to a healthy state soon." && \ + echo -e "Check OSM status with: docker service ls; docker stack ps ${OSM_STACK_NAME}" && \ + track osm_unhealthy + fi + track after_healthcheck + + [ -n "$KUBERNETES" ] && add_local_k8scluster + track add_local_k8scluster + + wget -q -O- https://osm-download.etsi.org/ftp/osm-10.0-ten/README2.txt &> /dev/null + track end + return 0 +} + +function install_to_openstack() { + + if [ -z "$2" ]; then + FATAL "OpenStack installer requires a valid external network name" + fi + + # Install Pip for Python3 + $WORKDIR_SUDO apt install -y python3-pip python3-venv + $WORKDIR_SUDO -H LC_ALL=C python3 -m pip install -U pip + + # Create a venv to avoid conflicts with the host installation + python3 -m venv $OPENSTACK_PYTHON_VENV + + source $OPENSTACK_PYTHON_VENV/bin/activate + + # Install Ansible, OpenStack client and SDK, latest openstack version supported is Train + python -m pip install -U wheel + python -m pip install -U "python-openstackclient<=4.0.2" "openstacksdk>=0.12.0,<=0.36.2" "ansible>=2.10,<2.11" + + # Install the Openstack cloud module (ansible>=2.10) + ansible-galaxy collection install openstack.cloud + + export ANSIBLE_CONFIG="$OSM_DEVOPS/installers/openstack/ansible.cfg" + + OSM_INSTALLER_ARGS="${REPO_ARGS[@]}" + + ANSIBLE_VARS="external_network_name=$2 setup_volume=$3 server_name=$OPENSTACK_VM_NAME" + + if [ -n "$OPENSTACK_SSH_KEY_FILE" ]; then + ANSIBLE_VARS+=" key_file=$OPENSTACK_SSH_KEY_FILE" + fi + + if [ -n "$OPENSTACK_USERDATA_FILE" ]; then + ANSIBLE_VARS+=" userdata_file=$OPENSTACK_USERDATA_FILE" + fi + + # Execute the Ansible playbook based on openrc or clouds.yaml + if [ -e "$1" ]; then + . $1 + ansible-playbook -e installer_args="\"$OSM_INSTALLER_ARGS\"" -e "$ANSIBLE_VARS" \ + $OSM_DEVOPS/installers/openstack/site.yml + else + ansible-playbook -e installer_args="\"$OSM_INSTALLER_ARGS\"" -e "$ANSIBLE_VARS" \ + -e cloud_name=$1 $OSM_DEVOPS/installers/openstack/site.yml + fi + + # Exit from venv + deactivate + + return 0 +} + +function install_vimemu() { + echo "\nInstalling vim-emu" + EMUTEMPDIR="$(mktemp -d -q --tmpdir "installosmvimemu.XXXXXX")" + trap 'rm -rf "${EMUTEMPDIR}"' EXIT + # install prerequisites (OVS is a must for the emulator to work) + sudo apt-get install openvswitch-switch + # clone vim-emu repository (attention: branch is currently master only) + echo "Cloning vim-emu repository ..." + git clone https://osm.etsi.org/gerrit/osm/vim-emu.git $EMUTEMPDIR + # build vim-emu docker + echo "Building vim-emu Docker container..." + + sg docker -c "docker build -t vim-emu-img -f $EMUTEMPDIR/Dockerfile --no-cache $EMUTEMPDIR/" || FATAL "cannot build vim-emu-img docker image" + # start vim-emu container as daemon + echo "Starting vim-emu Docker container 'vim-emu' ..." + if [ -n "$INSTALL_LIGHTWEIGHT" ]; then + # in lightweight mode, the emulator needs to be attached to netOSM + sg docker -c "docker run --name vim-emu -t -d --restart always --privileged --pid='host' --network=net${OSM_STACK_NAME} -v /var/run/docker.sock:/var/run/docker.sock vim-emu-img python examples/osm_default_daemon_topology_2_pop.py" + else + # classic build mode + sg docker -c "docker run --name vim-emu -t -d --restart always --privileged --pid='host' -v /var/run/docker.sock:/var/run/docker.sock vim-emu-img python examples/osm_default_daemon_topology_2_pop.py" + fi + echo "Waiting for 'vim-emu' container to start ..." + sleep 5 + export VIMEMU_HOSTNAME=$(sg docker -c "docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' vim-emu") + echo "vim-emu running at ${VIMEMU_HOSTNAME} ..." + # print vim-emu connection info + echo -e "\nYou might be interested in adding the following vim-emu env variables to your .bashrc file:" + echo " export VIMEMU_HOSTNAME=${VIMEMU_HOSTNAME}" + echo -e "To add the emulated VIM to OSM you should do:" + echo " osm vim-create --name emu-vim1 --user username --password password --auth_url http://${VIMEMU_HOSTNAME}:6001/v2.0 --tenant tenantName --account_type openstack" +} + +function install_k8s_monitoring() { + # install OSM monitoring + $WORKDIR_SUDO chmod +x $OSM_DEVOPS/installers/k8s/*.sh + $WORKDIR_SUDO $OSM_DEVOPS/installers/k8s/install_osm_k8s_monitoring.sh +} + +function uninstall_k8s_monitoring() { + # uninstall OSM monitoring + $WORKDIR_SUDO $OSM_DEVOPS/installers/k8s/uninstall_osm_k8s_monitoring.sh +} + +function dump_vars(){ + echo "DEVELOP=$DEVELOP" + echo "INSTALL_FROM_SOURCE=$INSTALL_FROM_SOURCE" + echo "UNINSTALL=$UNINSTALL" + echo "UPDATE=$UPDATE" + echo "RECONFIGURE=$RECONFIGURE" + echo "TEST_INSTALLER=$TEST_INSTALLER" + echo "INSTALL_VIMEMU=$INSTALL_VIMEMU" + echo "INSTALL_PLA=$INSTALL_PLA" + echo "INSTALL_LXD=$INSTALL_LXD" + echo "INSTALL_LIGHTWEIGHT=$INSTALL_LIGHTWEIGHT" + echo "INSTALL_ONLY=$INSTALL_ONLY" + echo "INSTALL_ELK=$INSTALL_ELK" + echo "INSTALL_NOCACHELXDIMAGES=$INSTALL_NOCACHELXDIMAGES" + #echo "INSTALL_PERFMON=$INSTALL_PERFMON" + echo "INSTALL_TO_OPENSTACK=$INSTALL_TO_OPENSTACK" + echo "OPENSTACK_PUBLIC_NET_NAME=$OPENSTACK_PUBLIC_NET_NAME" + echo "OPENSTACK_OPENRC_FILE_OR_CLOUD=$OPENSTACK_OPENRC_FILE_OR_CLOUD" + echo "OPENSTACK_ATTACH_VOLUME=$OPENSTACK_ATTACH_VOLUME" + echo "OPENSTACK_SSH_KEY_FILE"="$OPENSTACK_SSH_KEY_FILE" + echo "OPENSTACK_USERDATA_FILE"="$OPENSTACK_USERDATA_FILE" + echo "OPENSTACK_VM_NAME"="$OPENSTACK_VM_NAME" + echo "INSTALL_K8S_MONITOR=$INSTALL_K8S_MONITOR" + echo "TO_REBUILD=$TO_REBUILD" + echo "INSTALL_NOLXD=$INSTALL_NOLXD" + echo "INSTALL_NODOCKER=$INSTALL_NODOCKER" + echo "INSTALL_NOJUJU=$INSTALL_NOJUJU" + echo "RELEASE=$RELEASE" + echo "REPOSITORY=$REPOSITORY" + echo "REPOSITORY_BASE=$REPOSITORY_BASE" + echo "REPOSITORY_KEY=$REPOSITORY_KEY" + echo "OSM_DEVOPS=$OSM_DEVOPS" + echo "OSM_VCA_HOST=$OSM_VCA_HOST" + echo "OSM_VCA_SECRET=$OSM_VCA_SECRET" + echo "OSM_VCA_PUBKEY=$OSM_VCA_PUBKEY" + echo "NO_HOST_PORTS=$NO_HOST_PORTS" + echo "DOCKER_NOBUILD=$DOCKER_NOBUILD" + echo "WORKDIR_SUDO=$WORKDIR_SUDO" + echo "OSM_WORK_DIR=$OSM_WORK_DIR" + echo "OSM_DOCKER_TAG=$OSM_DOCKER_TAG" + echo "DOCKER_USER=$DOCKER_USER" + echo "OSM_STACK_NAME=$OSM_STACK_NAME" + echo "PULL_IMAGES=$PULL_IMAGES" + echo "KUBERNETES=$KUBERNETES" + echo "DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL" + echo "DOCKER_PROXY_URL=$DOCKER_PROXY_URL" + echo "SHOWOPTS=$SHOWOPTS" + echo "Install from specific refspec (-b): $COMMIT_ID" +} + +function track(){ + ctime=`date +%s` + duration=$((ctime - SESSION_ID)) + url="http://www.woopra.com/track/ce?project=osm.etsi.org&cookie=${SESSION_ID}" + #url="${url}&ce_campaign_name=${CAMPAIGN_NAME}" + event_name="bin" + [ -z "$INSTALL_LIGHTWEIGHT" ] && [ -n "$INSTALL_FROM_SOURCE" ] && event_name="binsrc" + [ -z "$INSTALL_LIGHTWEIGHT" ] && [ -n "$INSTALL_FROM_LXDIMAGES" ] && event_name="lxd" + [ -n "$INSTALL_LIGHTWEIGHT" ] && event_name="lw" + event_name="${event_name}_$1" + url="${url}&event=${event_name}&ce_duration=${duration}" + wget -q -O /dev/null $url +} + +function parse_docker_registry_url() { + DOCKER_REGISTRY_USER=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); split(a[1],b,":"); print b[1]}') + DOCKER_REGISTRY_PASSWORD=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); split(a[1],b,":"); print b[2]}') + DOCKER_REGISTRY_URL=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); print a[2]}') +} + +JUJU_VERSION=2.9 +JUJU_AGENT_VERSION=2.9.9 +UNINSTALL="" +DEVELOP="" +UPDATE="" +RECONFIGURE="" +TEST_INSTALLER="" +INSTALL_LXD="" +SHOWOPTS="" +COMMIT_ID="" +ASSUME_YES="" +INSTALL_FROM_SOURCE="" +RELEASE="ReleaseTEN" +REPOSITORY="stable" +INSTALL_VIMEMU="" +INSTALL_PLA="" +LXD_REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/lxd" +LXD_REPOSITORY_PATH="" +INSTALL_LIGHTWEIGHT="y" +INSTALL_TO_OPENSTACK="" +OPENSTACK_OPENRC_FILE_OR_CLOUD="" +OPENSTACK_PUBLIC_NET_NAME="" +OPENSTACK_ATTACH_VOLUME="false" +OPENSTACK_SSH_KEY_FILE="" +OPENSTACK_USERDATA_FILE="" +OPENSTACK_VM_NAME="server-osm" +OPENSTACK_PYTHON_VENV="$HOME/.virtual-envs/osm" +INSTALL_ONLY="" +INSTALL_ELK="" +TO_REBUILD="" +INSTALL_NOLXD="" +INSTALL_NODOCKER="" +INSTALL_NOJUJU="" +KUBERNETES="y" +INSTALL_K8S_MONITOR="" +INSTALL_NOHOSTCLIENT="" +INSTALL_NOCACHELXDIMAGES="" +SESSION_ID=`date +%s` +OSM_DEVOPS= +OSM_VCA_HOST= +OSM_VCA_SECRET= +OSM_VCA_PUBKEY= +OSM_VCA_CLOUDNAME="localhost" +OSM_VCA_K8S_CLOUDNAME="k8scloud" +OSM_STACK_NAME=osm +NO_HOST_PORTS="" +DOCKER_NOBUILD="" +REPOSITORY_KEY="OSM%20ETSI%20Release%20Key.gpg" +REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/debian" +WORKDIR_SUDO=sudo +OSM_WORK_DIR="/etc/osm" +OSM_DOCKER_WORK_DIR="/etc/osm/docker" +OSM_K8S_WORK_DIR="${OSM_DOCKER_WORK_DIR}/osm_pods" +OSM_HOST_VOL="/var/lib/osm" +OSM_NAMESPACE_VOL="${OSM_HOST_VOL}/${OSM_STACK_NAME}" +OSM_DOCKER_TAG=latest +DOCKER_USER=opensourcemano +PULL_IMAGES="y" +KAFKA_TAG=2.11-1.0.2 +PROMETHEUS_TAG=v2.4.3 +GRAFANA_TAG=latest +PROMETHEUS_NODE_EXPORTER_TAG=0.18.1 +PROMETHEUS_CADVISOR_TAG=latest +KEYSTONEDB_TAG=10 +OSM_DATABASE_COMMONKEY= +ELASTIC_VERSION=6.4.2 +ELASTIC_CURATOR_VERSION=5.5.4 +POD_NETWORK_CIDR=10.244.0.0/16 +K8S_MANIFEST_DIR="/etc/kubernetes/manifests" +RE_CHECK='^[a-z0-9]([-a-z0-9]*[a-z0-9])?$' +DOCKER_REGISTRY_URL= +DOCKER_PROXY_URL= +MODULE_DOCKER_TAG= + +while getopts ":b:r:c:n:k:u:R:D:o:O:m:N:H:S:s:w:t:U:P:A:l:L:K:d:p:T:f:F:-: hy" o; do + case "${o}" in + b) + COMMIT_ID=${OPTARG} + PULL_IMAGES="" + ;; + r) + REPOSITORY="${OPTARG}" + REPO_ARGS+=(-r "$REPOSITORY") + ;; + c) + [ "${OPTARG}" == "swarm" ] && KUBERNETES="" && REPO_ARGS+=(-c "${OPTARG}") && continue + [ "${OPTARG}" == "k8s" ] && KUBERNETES="y" && continue + echo -e "Invalid argument for -i : ' $OPTARG'\n" >&2 + usage && exit 1 + ;; + k) + REPOSITORY_KEY="${OPTARG}" + REPO_ARGS+=(-k "$REPOSITORY_KEY") + ;; + u) + REPOSITORY_BASE="${OPTARG}" + REPO_ARGS+=(-u "$REPOSITORY_BASE") + ;; + R) + RELEASE="${OPTARG}" + REPO_ARGS+=(-R "$RELEASE") + ;; + D) + OSM_DEVOPS="${OPTARG}" + ;; + o) + INSTALL_ONLY="y" + [ "${OPTARG}" == "vimemu" ] && INSTALL_VIMEMU="y" && continue + [ "${OPTARG}" == "elk_stack" ] && INSTALL_ELK="y" && continue + [ "${OPTARG}" == "k8s_monitor" ] && INSTALL_K8S_MONITOR="y" && continue + ;; + O) + INSTALL_TO_OPENSTACK="y" + if [ -n "${OPTARG}" ]; then + OPENSTACK_OPENRC_FILE_OR_CLOUD="${OPTARG}" + else + echo -e "Invalid argument for -O : ' $OPTARG'\n" >&2 + usage && exit 1 + fi + ;; + f) + OPENSTACK_SSH_KEY_FILE="${OPTARG}" + ;; + F) + OPENSTACK_USERDATA_FILE="${OPTARG}" + ;; + N) + OPENSTACK_PUBLIC_NET_NAME="${OPTARG}" + ;; + m) + [ "${OPTARG}" == "NG-UI" ] && TO_REBUILD="$TO_REBUILD NG-UI" && continue + [ "${OPTARG}" == "NBI" ] && TO_REBUILD="$TO_REBUILD NBI" && continue + [ "${OPTARG}" == "LCM" ] && TO_REBUILD="$TO_REBUILD LCM" && continue + [ "${OPTARG}" == "RO" ] && TO_REBUILD="$TO_REBUILD RO" && continue + [ "${OPTARG}" == "MON" ] && TO_REBUILD="$TO_REBUILD MON" && continue + [ "${OPTARG}" == "POL" ] && TO_REBUILD="$TO_REBUILD POL" && continue + [ "${OPTARG}" == "PLA" ] && TO_REBUILD="$TO_REBUILD PLA" && continue + [ "${OPTARG}" == "osmclient" ] && TO_REBUILD="$TO_REBUILD osmclient" && continue + [ "${OPTARG}" == "KAFKA" ] && TO_REBUILD="$TO_REBUILD KAFKA" && continue + [ "${OPTARG}" == "MONGO" ] && TO_REBUILD="$TO_REBUILD MONGO" && continue + [ "${OPTARG}" == "PROMETHEUS" ] && TO_REBUILD="$TO_REBUILD PROMETHEUS" && continue + [ "${OPTARG}" == "PROMETHEUS-CADVISOR" ] && TO_REBUILD="$TO_REBUILD PROMETHEUS-CADVISOR" && continue + [ "${OPTARG}" == "KEYSTONE-DB" ] && TO_REBUILD="$TO_REBUILD KEYSTONE-DB" && continue + [ "${OPTARG}" == "GRAFANA" ] && TO_REBUILD="$TO_REBUILD GRAFANA" && continue + [ "${OPTARG}" == "NONE" ] && TO_REBUILD="$TO_REBUILD NONE" && continue + ;; + H) + OSM_VCA_HOST="${OPTARG}" + ;; + S) + OSM_VCA_SECRET="${OPTARG}" + ;; + s) + OSM_STACK_NAME="${OPTARG}" && [ -n "$KUBERNETES" ] && [[ ! "${OPTARG}" =~ $RE_CHECK ]] && echo "Namespace $OPTARG is invalid. Regex used for validation is $RE_CHECK" && exit 0 + ;; + w) + # when specifying workdir, do not use sudo for access + WORKDIR_SUDO= + OSM_WORK_DIR="${OPTARG}" + ;; + t) + OSM_DOCKER_TAG="${OPTARG}" + REPO_ARGS+=(-t "$OSM_DOCKER_TAG") + ;; + U) + DOCKER_USER="${OPTARG}" + ;; + P) + OSM_VCA_PUBKEY=$(cat ${OPTARG}) + ;; + A) + OSM_VCA_APIPROXY="${OPTARG}" + ;; + l) + LXD_CLOUD_FILE="${OPTARG}" + ;; + L) + LXD_CRED_FILE="${OPTARG}" + ;; + K) + CONTROLLER_NAME="${OPTARG}" + ;; + d) + DOCKER_REGISTRY_URL="${OPTARG}" + ;; + p) + DOCKER_PROXY_URL="${OPTARG}" + ;; + T) + MODULE_DOCKER_TAG="${OPTARG}" + ;; + -) + [ "${OPTARG}" == "help" ] && usage && exit 0 + [ "${OPTARG}" == "source" ] && INSTALL_FROM_SOURCE="y" && PULL_IMAGES="" && continue + [ "${OPTARG}" == "develop" ] && DEVELOP="y" && continue + [ "${OPTARG}" == "uninstall" ] && UNINSTALL="y" && continue + [ "${OPTARG}" == "update" ] && UPDATE="y" && continue + [ "${OPTARG}" == "reconfigure" ] && RECONFIGURE="y" && continue + [ "${OPTARG}" == "test" ] && TEST_INSTALLER="y" && continue + [ "${OPTARG}" == "lxdinstall" ] && INSTALL_LXD="y" && continue + [ "${OPTARG}" == "nolxd" ] && INSTALL_NOLXD="y" && continue + [ "${OPTARG}" == "nodocker" ] && INSTALL_NODOCKER="y" && continue + [ "${OPTARG}" == "lightweight" ] && INSTALL_LIGHTWEIGHT="y" && continue + [ "${OPTARG}" == "vimemu" ] && INSTALL_VIMEMU="y" && continue + [ "${OPTARG}" == "elk_stack" ] && INSTALL_ELK="y" && continue + [ "${OPTARG}" == "showopts" ] && SHOWOPTS="y" && continue + [ "${OPTARG}" == "nohostports" ] && NO_HOST_PORTS="y" && continue + [ "${OPTARG}" == "nojuju" ] && INSTALL_NOJUJU="y" && continue + [ "${OPTARG}" == "nodockerbuild" ] && DOCKER_NOBUILD="y" && continue + [ "${OPTARG}" == "nohostclient" ] && INSTALL_NOHOSTCLIENT="y" && continue + [ "${OPTARG}" == "pullimages" ] && continue + [ "${OPTARG}" == "k8s_monitor" ] && INSTALL_K8S_MONITOR="y" && continue + [ "${OPTARG}" == "charmed" ] && CHARMED="y" && continue + [ "${OPTARG}" == "bundle" ] && continue + [ "${OPTARG}" == "k8s" ] && continue + [ "${OPTARG}" == "lxd" ] && continue + [ "${OPTARG}" == "lxd-cred" ] && continue + [ "${OPTARG}" == "microstack" ] && continue + [ "${OPTARG}" == "overlay" ] && continue + [ "${OPTARG}" == "only-vca" ] && continue + [ "${OPTARG}" == "vca" ] && continue + [ "${OPTARG}" == "ha" ] && continue + [ "${OPTARG}" == "tag" ] && continue + [ "${OPTARG}" == "registry" ] && continue + [ "${OPTARG}" == "pla" ] && INSTALL_PLA="y" && continue + [ "${OPTARG}" == "volume" ] && OPENSTACK_ATTACH_VOLUME="true" && continue + [ "${OPTARG}" == "nocachelxdimages" ] && INSTALL_NOCACHELXDIMAGES="y" && continue + echo -e "Invalid option: '--$OPTARG'\n" >&2 + usage && exit 1 + ;; + :) + echo "Option -$OPTARG requires an argument" >&2 + usage && exit 1 + ;; + \?) + echo -e "Invalid option: '-$OPTARG'\n" >&2 + usage && exit 1 + ;; + h) + usage && exit 0 + ;; + y) + ASSUME_YES="y" + ;; + *) + usage && exit 1 + ;; + esac +done + +[ -n "$DOCKER_REGISTRY_URL" ] && parse_docker_registry_url +[ -n "$TO_REBUILD" ] && [ "$TO_REBUILD" != " NONE" ] && echo $TO_REBUILD | grep -q NONE && FATAL "Incompatible option: -m NONE cannot be used with other -m options" +[ -n "$TO_REBUILD" ] && [ "$TO_REBUILD" == " PLA" ] && [ -z "$INSTALL_PLA" ] && FATAL "Incompatible option: -m PLA cannot be used without --pla option" + +if [ -n "$SHOWOPTS" ]; then + dump_vars + exit 0 +fi + +if [ -n "$CHARMED" ]; then + if [ -n "$UNINSTALL" ]; then + ${OSM_DEVOPS}/installers/charmed_uninstall.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D /usr/share/osm-devops -t $DOCKER_TAG "$@" + else + ${OSM_DEVOPS}/installers/charmed_install.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D /usr/share/osm-devops -t $DOCKER_TAG "$@" + fi + + exit 0 +fi + +# if develop, we force master +[ -z "$COMMIT_ID" ] && [ -n "$DEVELOP" ] && COMMIT_ID="master" + +need_packages="git wget curl tar" + +[ -n "$INSTALL_TO_OPENSTACK" ] && install_to_openstack $OPENSTACK_OPENRC_FILE_OR_CLOUD $OPENSTACK_PUBLIC_NET_NAME $OPENSTACK_ATTACH_VOLUME && echo -e "\nDONE" && exit 0 + +echo -e "Checking required packages: $need_packages" +dpkg -l $need_packages &>/dev/null \ + || ! echo -e "One or several required packages are not installed. Updating apt cache requires root privileges." \ + || sudo apt-get update \ + || FATAL "failed to run apt-get update" +dpkg -l $need_packages &>/dev/null \ + || ! echo -e "Installing $need_packages requires root privileges." \ + || sudo apt-get install -y $need_packages \ + || FATAL "failed to install $need_packages" +sudo snap install jq +if [ -z "$OSM_DEVOPS" ]; then + if [ -n "$TEST_INSTALLER" ]; then + echo -e "\nUsing local devops repo for OSM installation" + OSM_DEVOPS="$(dirname $(realpath $(dirname $0)))" + else + echo -e "\nCreating temporary dir for OSM installation" + OSM_DEVOPS="$(mktemp -d -q --tmpdir "installosm.XXXXXX")" + trap 'rm -rf "$OSM_DEVOPS"' EXIT + + git clone https://osm.etsi.org/gerrit/osm/devops.git $OSM_DEVOPS + + if [ -z "$COMMIT_ID" ]; then + echo -e "\nGuessing the current stable release" + LATEST_STABLE_DEVOPS=`git -C $OSM_DEVOPS tag -l v[0-9].* | sort -V | tail -n1` + [ -z "$LATEST_STABLE_DEVOPS" ] && echo "Could not find the current latest stable release" && exit 0 + + echo "Latest tag in devops repo: $LATEST_STABLE_DEVOPS" + COMMIT_ID="tags/$LATEST_STABLE_DEVOPS" + else + echo -e "\nDEVOPS Using commit $COMMIT_ID" + fi + git -C $OSM_DEVOPS checkout $COMMIT_ID + fi +fi + +. $OSM_DEVOPS/common/all_funcs + +[ "${OSM_STACK_NAME}" == "osm" ] || OSM_DOCKER_WORK_DIR="$OSM_WORK_DIR/stack/$OSM_STACK_NAME" +[ -n "$KUBERNETES" ] && OSM_K8S_WORK_DIR="$OSM_DOCKER_WORK_DIR/osm_pods" && OSM_NAMESPACE_VOL="${OSM_HOST_VOL}/${OSM_STACK_NAME}" +[ -n "$INSTALL_LIGHTWEIGHT" ] && [ -n "$UNINSTALL" ] && uninstall_lightweight && echo -e "\nDONE" && exit 0 +[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_ELK" ] && deploy_elk +#[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_PERFMON" ] && deploy_perfmon +[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_VIMEMU" ] && install_vimemu +[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_K8S_MONITOR" ] && install_k8s_monitoring +[ -n "$INSTALL_ONLY" ] && echo -e "\nDONE" && exit 0 + +#Installation starts here +wget -q -O- https://osm-download.etsi.org/ftp/osm-10.0-ten/README.txt &> /dev/null +track start + +[ -n "$INSTALL_LIGHTWEIGHT" ] && install_lightweight && echo -e "\nDONE" && exit 0 +echo -e "\nInstalling OSM from refspec: $COMMIT_ID" +if [ -n "$INSTALL_FROM_SOURCE" ] && [ -z "$ASSUME_YES" ]; then + ! ask_user "The installation will take about 75-90 minutes. Continue (Y/n)? " y && echo "Cancelled!" && exit 1 +fi + +echo -e "Checking required packages: lxd" +lxd --version &>/dev/null || FATAL "lxd not present, exiting." +[ -n "$INSTALL_LXD" ] && echo -e "\nInstalling and configuring lxd" && install_lxd + +# use local devops for containers +export OSM_USE_LOCAL_DEVOPS=true + +#Install osmclient + +#Install vim-emu (optional) +[ -n "$INSTALL_VIMEMU" ] && install_docker_ce && install_vimemu + +wget -q -O- https://osm-download.etsi.org/ftp/osm-10.0-ten/README2.txt &> /dev/null +track end +echo -e "\nDONE" \ No newline at end of file diff --git a/_tmp/osm-install/gitweb.install_osm.sh b/_tmp/osm-install/gitweb.install_osm.sh new file mode 100644 index 0000000..a581d43 --- /dev/null +++ b/_tmp/osm-install/gitweb.install_osm.sh @@ -0,0 +1,160 @@ +#!/bin/bash +# +# 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. +# +REPOSITORY_BASE=https://osm-download.etsi.org/repository/osm/debian +RELEASE=ReleaseTEN +REPOSITORY=stable +DOCKER_TAG=10 +DEVOPS_PATH=/usr/share/osm-devops + +function usage(){ + echo -e "usage: $0 [OPTIONS]" + echo -e "Install OSM from binaries or source code (by default, from binaries)" + echo -e " OPTIONS" + echo -e " -h / --help: print this help" + echo -e " -y: do not prompt for confirmation, assumes yes" + echo -e " -r : use specified repository name for osm packages" + echo -e " -R : use specified release for osm binaries (deb packages, lxd images, ...)" + echo -e " -u : use specified repository url for osm packages" + echo -e " -k : use specified repository public key url" + echo -e " -b : install OSM from source code using a specific branch (master, v2.0, ...) or tag" + echo -e " -b master (main dev branch)" + echo -e " -b v2.0 (v2.0 branch)" + echo -e " -b tags/v1.1.0 (a specific tag)" + echo -e " ..." + echo -e " -c deploy osm services using container . Valid values are or . If -c is not used then osm will be deployed using default orchestrator. When used with --uninstall, osm services deployed by the orchestrator will be uninstalled" + echo -e " -s or user defined stack name when installed using swarm or namespace when installed using k8s, default is osm" + echo -e " -H use specific juju host controller IP" + echo -e " -S use VCA/juju secret key" + echo -e " -P use VCA/juju public key file" + echo -e " -C use VCA/juju CA certificate file" + echo -e " -A use VCA/juju API proxy" + echo -e " --vimemu: additionally deploy the VIM emulator as a docker container" + echo -e " --elk_stack: additionally deploy an ELK docker stack for event logging" + echo -e " --pla: install the PLA module for placement support" + echo -e " -m : install OSM but only rebuild the specified docker images (LW-UI, NBI, LCM, RO, MON, POL, KAFKA, MONGO, PROMETHEUS, PROMETHEUS-CADVISOR, KEYSTONE-DB, PLA, NONE)" + echo -e " -o : ONLY (un)installs one of the addons (vimemu, elk_stack, k8s_monitor)" + echo -e " -O : Install OSM to an OpenStack infrastructure. is required. If a is used, the clouds.yaml file should be under ~/.config/openstack/ or /etc/openstack/" + echo -e " -N : Public network name required to setup OSM to OpenStack" + echo -e " -D use local devops installation path" + echo -e " -w Location to store runtime installation" + echo -e " -t specify osm docker tag (default is latest)" + echo -e " -l: LXD cloud yaml file" + echo -e " -L: LXD credentials yaml file" + echo -e " -K: Specifies the name of the controller to use - The controller must be already bootstrapped" + echo -e " -d use docker registry URL instead of dockerhub" + echo -e " -p set docker proxy URL as part of docker CE configuration" + echo -e " -T specify docker tag for the modules specified with option -m" + echo -e " --nocachelxdimages: do not cache local lxd images, do not create cronjob for that cache (will save installation time, might affect instantiation time)" + echo -e " --nolxd: do not install and configure LXD, allowing unattended installations (assumes LXD is already installed and confifured)" + echo -e " --nodocker: do not install docker, do not initialize a swarm (assumes docker is already installed and a swarm has been initialized)" + echo -e " --nojuju: do not juju, assumes already installed" + echo -e " --nodockerbuild:do not build docker images (use existing locally cached images)" + echo -e " --nohostports: do not expose docker ports to host (useful for creating multiple instances of osm on the same host)" + echo -e " --nohostclient: do not install the osmclient" + echo -e " --uninstall: uninstall OSM: remove the containers and delete NAT rules" + echo -e " --source: install OSM from source code using the latest stable tag" + echo -e " --develop: (deprecated, use '-b master') install OSM from source code using the master branch" + echo -e " --pullimages: pull/run osm images from docker.io/opensourcemano" + echo -e " --k8s_monitor: install the OSM kubernetes monitoring with prometheus and grafana" + echo -e " --volume: create a VM volume when installing to OpenStack" + echo -e " --showopts: print chosen options and exit (only for debugging)" + echo -e " --charmed: Deploy and operate OSM with Charms on k8s" + echo -e " [--bundle ]: Specify with which bundle to deploy OSM with charms (--charmed option)" + echo -e " [--k8s ]: Specify with which kubernetes to deploy OSM with charms (--charmed option)" + echo -e " [--vca ]: Specifies the name of the controller to use - The controller must be already bootstrapped (--charmed option)" + echo -e " [--lxd ]: Takes a YAML file as a parameter with the LXD Cloud information (--charmed option)" + echo -e " [--lxd-cred ]: Takes a YAML file as a parameter with the LXD Credentials information (--charmed option)" + echo -e " [--microstack]: Installs microstack as a vim. (--charmed option)" + echo -e " [--overlay]: Add an overlay to override some defaults of the default bundle (--charmed option)" + echo -e " [--ha]: Installs High Availability bundle. (--charmed option)" + echo -e " [--tag]: Docker image tag. (--charmed option)" + echo -e " [--registry]: Docker registry with optional credentials as user:pass@hostname:port (--charmed option)" + +} + +add_repo() { + REPO_CHECK="^$1" + grep "${REPO_CHECK/\[arch=amd64\]/\\[arch=amd64\\]}" /etc/apt/sources.list > /dev/null 2>&1 + if [ $? -ne 0 ] + then + need_packages_lw="software-properties-common apt-transport-https" + echo -e "Checking required packages: $need_packages_lw" + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "One or several required packages are not installed. Updating apt cache requires root privileges." \ + || sudo apt-get -q update \ + || ! echo "failed to run apt-get update" \ + || exit 1 + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "Installing $need_packages_lw requires root privileges." \ + || sudo apt-get install -y $need_packages_lw \ + || ! echo "failed to install $need_packages_lw" \ + || exit 1 + wget -qO - $REPOSITORY_BASE/$RELEASE/OSM%20ETSI%20Release%20Key.gpg | sudo apt-key add - + sudo DEBIAN_FRONTEND=noninteractive add-apt-repository -y "$1" && sudo DEBIAN_FRONTEND=noninteractive apt-get update + return 0 + fi + + return 1 +} + +clean_old_repo() { +dpkg -s 'osm-devops' &> /dev/null +if [ $? -eq 0 ]; then + # Clean the previous repos that might exist + sudo sed -i "/osm-download.etsi.org/d" /etc/apt/sources.list +fi +} + +while getopts ":b:r:c:n:k:u:R:l:L:K:p:D:o:O:m:N:H:S:s:w:t:U:P:A:d:p:f:F:-: hy" o; do + case "${o}" in + D) + DEVOPS_PATH="${OPTARG}" + ;; + r) + REPOSITORY="${OPTARG}" + ;; + R) + RELEASE="${OPTARG}" + ;; + u) + REPOSITORY_BASE="${OPTARG}" + ;; + t) + DOCKER_TAG="${OPTARG}" + ;; + -) + [ "${OPTARG}" == "help" ] && usage && exit 0 + ;; + :) + echo "Option -$OPTARG requires an argument" >&2 + usage && exit 1 + ;; + \?) + echo -e "Invalid option: '-$OPTARG'\n" >&2 + usage && exit 1 + ;; + h) + usage && exit 0 + ;; + *) + ;; + esac +done + +clean_old_repo +add_repo "deb [arch=amd64] $REPOSITORY_BASE/$RELEASE $REPOSITORY devops" +sudo DEBIAN_FRONTEND=noninteractive apt-get -q update +sudo DEBIAN_FRONTEND=noninteractive apt-get install osm-devops +$DEVOPS_PATH/installers/full_install_osm.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D $DEVOPS_PATH -t $DOCKER_TAG "$@" \ No newline at end of file diff --git a/_tmp/osm-install/install.log b/_tmp/osm-install/install.log new file mode 100644 index 0000000..5074684 --- /dev/null +++ b/_tmp/osm-install/install.log @@ -0,0 +1,3047 @@ +Checking required packages: software-properties-common apt-transport-https +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease +Get:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB] +Get:3 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease [4070 B] +Get:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB] +Get:5 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB] +Get:6 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [8570 kB] +Get:7 http://archive.ubuntu.com/ubuntu bionic/universe Translation-en [4941 kB] +Get:8 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/devops amd64 Packages [479 B] +Get:9 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [151 kB] +Get:10 http://archive.ubuntu.com/ubuntu bionic/multiverse Translation-en [108 kB] +Get:11 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [2192 kB] +Get:12 http://archive.ubuntu.com/ubuntu bionic-updates/main Translation-en [430 kB] +Get:13 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1748 kB] +Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/universe Translation-en [375 kB] +Get:15 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [27.3 kB] +Get:16 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse Translation-en [6808 B] +Get:17 http://archive.ubuntu.com/ubuntu bionic-backports/main amd64 Packages [10.0 kB] +Get:18 http://archive.ubuntu.com/ubuntu bionic-backports/main Translation-en [4764 B] +Get:19 http://archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages [10.3 kB] +Get:20 http://archive.ubuntu.com/ubuntu bionic-backports/universe Translation-en [4588 B] +Get:21 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [1846 kB] +Get:22 http://security.ubuntu.com/ubuntu bionic-security/main Translation-en [338 kB] +Get:23 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [1137 kB] +Get:24 http://security.ubuntu.com/ubuntu bionic-security/universe Translation-en [259 kB] +Get:25 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [20.9 kB] +Get:26 http://security.ubuntu.com/ubuntu bionic-security/multiverse Translation-en [4732 B] +Fetched 22.4 MB in 5s (4500 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:3 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:4 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:5 http://security.ubuntu.com/ubuntu bionic-security InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:3 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:4 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:5 http://security.ubuntu.com/ubuntu bionic-security InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + osm-devops +0 upgraded, 1 newly installed, 0 to remove and 4 not upgraded. +Need to get 824 kB of archives. +After this operation, 9116 kB of additional disk space will be used. +Get:1 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/devops amd64 osm-devops all 10.0.1-1 [824 kB] +Fetched 824 kB in 0s (2189 kB/s) +Selecting previously unselected package osm-devops. +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 60392 files and directories currently installed.) +Preparing to unpack .../osm-devops_10.0.1-1_all.deb ... +Unpacking osm-devops (10.0.1-1) ... +Setting up osm-devops (10.0.1-1) ... +Checking required packages: git wget curl tar + Ensure prerequisites for "jq" are available / Ensure prerequisites for "jq" are available - Ensure prerequisites for "jq" are available \ Download snap "core" (11606) from channel "stable" | Download snap "core" (11606) from channel "stable" / Download snap "core" (11606) from channel "stable" - Download snap "core" (11606) from channel "stable" \ Download snap "core" (11606) from channel "stable" | Download snap "core" (11606) from channel "stable" /[?25l Download snap "core" (11606) from channel "stable" 0% 0B/s ages! Download snap "core" (11606) from channel "stable" 0% 0B/s ages! Download snap "core" (11606) from channel "stable" 0% 1.34MB/s 1m18s Download snap "core" (11606) from channel "stable" 1% 2.02MB/s 51.2s Download snap "core" (11606) from channel "stable" 2% 3.65MB/s 28.0s Download snap "core" (11606) from channel "stable" 4% 6.76MB/s 14.8s Download snap "core" (11606) from channel "stable" 7% 10.1MB/s 9.54s Download snap "core" (11606) from channel "stable" 10% 12.9MB/s 7.21s Download snap "core" (11606) from channel "stable" 14% 15.1MB/s 5.97s Download snap "core" (11606) from channel "stable" 16% 16.3MB/s 5.33s Download snap "core" (11606) from channel "stable" 22% 18.5MB/s 4.41s Download snap "core" (11606) from channel "stable" 25% 19.0MB/s 4.12s Download snap "core" (11606) from channel "stable" 28% 20.0MB/s 3.75s Download snap "core" (11606) from channel "stable"  31% 20.9MB/s 3.43s Download snap "core" (11606) from channel "stable"  34% 21.5MB/s 3.18s Download snap "core" (11606) from channel "stable"  37% 22.0MB/s 2.96s Download snap "core" (11606) from channel "stable"  40% 22.5MB/s 2.76s Download snap "core" (11606) from channel "stable"  44% 23.0MB/s 2.55s Download snap "core" (11606) from channel "stable"  47% 23.4MB/s 2.38s Download snap "core" (11606) from channel "stable"  50% 23.7MB/s 2.21s Download snap "core" (11606) from channel "stable"  53% 24.1MB/s 2.03s Download snap "core" (11606) from channel "stable"  56% 24.5MB/s 1.86s Download snap "core" (11606) from channel "stable"  59% 24.6MB/s 1.71s Download snap "core" (11606) from channel "stable"  63% 25.0MB/s 1.56s Download snap "core" (11606) from channel "stable"  66% 25.1MB/s 1.42s Download snap "core" (11606) from channel "stable"  69% 25.4MB/s 1.27s Download snap "core" (11606) from channel "stable"  73% 25.7MB/s 1.11s Download snap "core" (11606) from channel "stable"  76% 25.8MB/s 985ms Download snap "core" (11606) from channel "stable"  79% 26.0MB/s 857ms Download snap "core" (11606) from channel "stable"  82% 26.3MB/s 711ms Download snap "core" (11606) from channel "stable"  85% 26.4MB/s 587ms Download snap "core" (11606) from channel "stable"  88% 26.4MB/s 483ms Download snap "core" (11606) from channel "stable" 91% 26.4MB/s 370ms Download snap "core" (11606) from channel "stable" 94% 26.5MB/s 248ms Download snap "core" (11606) from channel "stable" 97% 26.6MB/s 136ms Download snap "core" (11606) from channel "stable" 100% 26.7MB/s 8.0ms Download snap "core" (11606) from channel "stable" 100% 26.1MB/s 0.0ns Fetch and check assertions for snap "core" (11606) - Fetch and check assertions for snap "core" (11606) \ Fetch and check assertions for snap "core" (11606) | Mount snap "core" (11606) / Mount snap "core" (11606) - Mount snap "core" (11606) \ Mount snap "core" (11606) | Mount snap "core" (11606) / Mount snap "core" (11606) - Mount snap "core" (11606) \ Mount snap "core" (11606) | Mount snap "core" (11606) / Mount snap "core" (11606) - Setup snap "core" (11606) security profiles \ Setup snap "core" (11606) security profiles | Setup snap "core" (11606) security profiles / Setup snap "core" (11606) security profiles - Setup snap "core" (11606) security profiles \ Setup snap "core" (11606) security profiles | Setup snap "core" (11606) security profiles / Set automatic aliases for snap "core" - Download snap "jq" (6) from channel "stable" \ Download snap "jq" (6) from channel "stable" | Download snap "jq" (6) from channel "stable" / Download snap "jq" (6) from channel "stable" - Download snap "jq" (6) from channel "stable" \ Download snap "jq" (6) from channel "stable" |[?25l Download snap "jq" (6) from channel "stable" 19% 456kB/s 435ms Download snap "jq" (6) from channel "stable"  39% 464kB/s 323ms Download snap "jq" (6) from channel "stable" 99% 784kB/s 3.4ms Fetch and check assertions for snap "jq" (6) / Mount snap "jq" (6) - Mount snap "jq" (6) \ Mount snap "jq" (6) | Mount snap "jq" (6) / Setup snap "jq" (6) security profiles - Setup snap "jq" (6) security profiles \ [?25hjq 1.5+dfsg-1 from Canonical* installed +## Mon Sep 6 20:07:14 CEST 2021 source: logging sourced +## Mon Sep 6 20:07:14 CEST 2021 source: config sourced +## Mon Sep 6 20:07:14 CEST 2021 source: container sourced +## Mon Sep 6 20:07:14 CEST 2021 source: git_functions sourced +The installation will do the following + 1. Install and configure LXD + 2. Install juju + 3. Install docker CE + 4. Disable swap space + 5. Install and initialize Kubernetes + as pre-requirements. + Do you want to proceed (Y/n)? y +Installing lightweight build of OSM +Checking required packages: snapd +* Applying /etc/sysctl.d/10-console-messages.conf ... +kernel.printk = 4 4 1 7 +* Applying /etc/sysctl.d/10-ipv6-privacy.conf ... +net.ipv6.conf.all.use_tempaddr = 2 +net.ipv6.conf.default.use_tempaddr = 2 +* Applying /etc/sysctl.d/10-kernel-hardening.conf ... +kernel.kptr_restrict = 1 +* Applying /etc/sysctl.d/10-link-restrictions.conf ... +fs.protected_hardlinks = 1 +fs.protected_symlinks = 1 +* Applying /etc/sysctl.d/10-lxd-inotify.conf ... +fs.inotify.max_user_instances = 1024 +* Applying /etc/sysctl.d/10-magic-sysrq.conf ... +kernel.sysrq = 176 +* Applying /etc/sysctl.d/10-network-security.conf ... +net.ipv4.conf.default.rp_filter = 1 +net.ipv4.conf.all.rp_filter = 1 +net.ipv4.tcp_syncookies = 1 +* Applying /etc/sysctl.d/10-ptrace.conf ... +kernel.yama.ptrace_scope = 1 +* Applying /etc/sysctl.d/10-zeropage.conf ... +vm.mmap_min_addr = 65536 +* Applying /usr/lib/sysctl.d/50-default.conf ... +net.ipv4.conf.all.promote_secondaries = 1 +net.core.default_qdisc = fq_codel +* Applying /etc/sysctl.d/60-lxd-production.conf ... +fs.inotify.max_queued_events = 1048576 +fs.inotify.max_user_instances = 1048576 +fs.inotify.max_user_watches = 1048576 +vm.max_map_count = 262144 +kernel.dmesg_restrict = 1 +net.ipv4.neigh.default.gc_thresh3 = 8192 +net.ipv6.neigh.default.gc_thresh3 = 8192 +net.core.bpf_jit_limit = 3000000000 +kernel.keys.maxkeys = 2000 +kernel.keys.maxbytes = 2000000 +* Applying /etc/sysctl.d/99-cloudimg-ipv6.conf ... +net.ipv6.conf.all.use_tempaddr = 0 +net.ipv6.conf.default.use_tempaddr = 0 +* Applying /etc/sysctl.d/99-sysctl.conf ... +* Applying /etc/sysctl.conf ... +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following packages will be REMOVED: + liblxc-common* liblxc1* lxcfs* lxd* lxd-client* +0 upgraded, 0 newly installed, 5 to remove and 4 not upgraded. +After this operation, 34.1 MB disk space will be freed. +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61700 files and directories currently installed.) +Removing lxd (3.0.3-0ubuntu1~18.04.1) ... +Removing lxd dnsmasq configuration +Removing lxcfs (3.0.3-0ubuntu1~18.04.2) ... +Removing lxd-client (3.0.3-0ubuntu1~18.04.1) ... +Removing liblxc-common (3.0.3-0ubuntu1~18.04.1) ... +Removing liblxc1 (3.0.3-0ubuntu1~18.04.1) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... +Processing triggers for libc-bin (2.27-3ubuntu1.4) ... +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61454 files and directories currently installed.) +Purging configuration files for liblxc-common (3.0.3-0ubuntu1~18.04.1) ... +Purging configuration files for lxd (3.0.3-0ubuntu1~18.04.1) ... +Purging configuration files for lxcfs (3.0.3-0ubuntu1~18.04.2) ... +Processing triggers for systemd (237-3ubuntu10.51) ... +Processing triggers for ureadahead (0.100.0-21) ... + Ensure prerequisites for "lxd" are available / Ensure prerequisites for "core20" are available - Download snap "core20" (1081) from channel "stable" \ Download snap "core20" (1081) from channel "stable" | Download snap "core20" (1081) from channel "stable" / Download snap "core20" (1081) from channel "stable" - Download snap "core20" (1081) from channel "stable" \ Download snap "core20" (1081) from channel "stable" | Download snap "core20" (1081) from channel "stable" /[?25l Download snap "core20" (1081) from channel "stable" 0% 0B/s ages! Download snap "core20" (1081) from channel "stable" 0% 704kB/s 1m32s Download snap "core20" (1081) from channel "stable" 0% 888kB/s 1m13s Download snap "core20" (1081) from channel "stable" 1% 1.62MB/s 39.6s Download snap "core20" (1081) from channel "stable" 2% 3.06MB/s 20.7s Download snap "core20" (1081) from channel "stable" 5% 5.29MB/s 11.6s Download snap "core20" (1081) from channel "stable" 9% 8.16MB/s 7.22s Download snap "core20" (1081) from channel "stable" 14% 10.8MB/s 5.19s Download snap "core20" (1081) from channel "stable" 18% 12.8MB/s 4.13s Download snap "core20" (1081) from channel "stable" 23% 14.5MB/s 3.42s Download snap "core20" (1081) from channel "stable" 28% 15.9MB/s 2.95s Download snap "core20" (1081) from channel "stable"  32% 16.9MB/s 2.58s Download snap "core20" (1081) from channel "stable"  37% 18.0MB/s 2.26s Download snap "core20" (1081) from channel "stable"  42% 18.7MB/s 2.02s Download snap "core20" (1081) from channel "stable"  46% 19.4MB/s 1.79s Download snap "core20" (1081) from channel "stable"  51% 20.0MB/s 1.59s Download snap "core20" (1081) from channel "stable"  56% 20.6MB/s 1.39s Download snap "core20" (1081) from channel "stable"  60% 20.7MB/s 1.25s Download snap "core20" (1081) from channel "stable"  65% 21.2MB/s 1.07s Download snap "core20" (1081) from channel "stable"  70% 21.6MB/s 900ms Download snap "core20" (1081) from channel "stable"  74% 21.9MB/s 756ms Download snap "core20" (1081) from channel "stable"  79% 22.2MB/s 610ms Download snap "core20" (1081) from channel "stable"  83% 22.5MB/s 476ms Download snap "core20" (1081) from channel "stable"  88% 22.8MB/s 338ms Download snap "core20" (1081) from channel "stable" 93% 23.0MB/s 210ms Download snap "core20" (1081) from channel "stable" 97% 23.2MB/s 79ms Download snap "core20" (1081) from channel "stable" 100% 22.5MB/s 0.0ns Download snap "core20" (1081) from channel "stable" 100% 21.6MB/s 0.0ns Fetch and check assertions for snap "core20" (1081) - Fetch and check assertions for snap "core20" (1081) \ Mount snap "core20" (1081) | Mount snap "core20" (1081) / Mount snap "core20" (1081) - Mount snap "core20" (1081) \ Mount snap "core20" (1081) | Mount snap "core20" (1081) / Mount snap "core20" (1081) - Mount snap "core20" (1081) \ Mount snap "core20" (1081) | Download snap "lxd" (21390) from channel "stable" / Download snap "lxd" (21390) from channel "stable" - Download snap "lxd" (21390) from channel "stable" \ Download snap "lxd" (21390) from channel "stable" |[?25l Download snap "lxd" (21390) from channel "stable" 1% 5.63MB/s 12.7s Download snap "lxd" (21390) from channel "stable" 6% 21.9MB/s 3.10s Download snap "lxd" (21390) from channel "stable" 13% 30.1MB/s 2.09s Download snap "lxd" (21390) from channel "stable" 22% 37.4MB/s 1.52s Download snap "lxd" (21390) from channel "stable"  32% 42.5MB/s 1.16s Download snap "lxd" (21390) from channel "stable"  39% 43.1MB/s 1.03s Download snap "lxd" (21390) from channel "stable"  46% 43.7MB/s 899ms Download snap "lxd" (21390) from channel "stable"  53% 43.0MB/s 791ms Download snap "lxd" (21390) from channel "stable"  63% 45.0MB/s 602ms Download snap "lxd" (21390) from channel "stable"  69% 44.9MB/s 502ms Download snap "lxd" (21390) from channel "stable"  76% 45.4MB/s 380ms Download snap "lxd" (21390) from channel "stable"  83% 45.7MB/s 265ms Download snap "lxd" (21390) from channel "stable" 90% 46.0MB/s 152ms Download snap "lxd" (21390) from channel "stable" 99% 46.7MB/s 21ms Download snap "lxd" (21390) from channel "stable" 100% 44.3MB/s 0.0ns Download snap "lxd" (21390) from channel "stable" 100% 41.5MB/s 0.0ns Fetch and check assertions for snap "lxd" (21390) / Mount snap "lxd" (21390) - Mount snap "lxd" (21390) \ Mount snap "lxd" (21390) | Mount snap "lxd" (21390) / Mount snap "lxd" (21390) - Setup snap "lxd" (21390) security profiles \ Setup snap "lxd" (21390) security profiles | Setup snap "lxd" (21390) security profiles / Setup snap "lxd" (21390) security profiles - Setup snap "lxd" (21390) security profiles \ Setup snap "lxd" (21390) security profiles | Setup snap "lxd" (21390) security profiles / Setup snap "lxd" (21390) security profiles - Setup snap "lxd" (21390) security profiles \ Setup snap "lxd" (21390) security profiles | Make snap "lxd" (21390) available to the system / Connect lxd:network to snapd:network - Setup snap "lxd" (21390) security profiles for auto-connections \ Setup snap "lxd" (21390) security profiles for auto-connections | Setup snap "lxd" (21390) security profiles for auto-connections / Setup snap "lxd" (21390) security profiles for auto-connections - Setup snap "lxd" (21390) security profiles for auto-connections \ Setup snap "lxd" (21390) security profiles for auto-connections | Setup snap "lxd" (21390) security profiles for auto-connections / Setup snap "lxd" (21390) security profiles for auto-connections - Setup snap "lxd" (21390) security profiles for auto-connections \ Setup snap "lxd" (21390) security profiles for auto-connections | Run install hook of "lxd" snap if present / Run install hook of "lxd" snap if present - Run install hook of "lxd" snap if present \ Run install hook of "lxd" snap if present | Start snap "lxd" (21390) services / Start snap "lxd" (21390) services - Start snap "lxd" (21390) services \ Start snap "lxd" (21390) services | Start snap "lxd" (21390) services / Start snap "lxd" (21390) services - Start snap "lxd" (21390) services \ Run configure hook of "lxd" snap if present | [?25hlxd 4.17 from Canonical* installed +To start your first instance, try: lxc launch ubuntu:18.04 + +Installing Docker CE ... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +ca-certificates is already the newest version (20210119~18.04.1). +ca-certificates set to manually installed. +software-properties-common is already the newest version (0.96.24.32.14). +software-properties-common set to manually installed. +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following NEW packages will be installed: + apt-transport-https +0 upgraded, 1 newly installed, 0 to remove and 4 not upgraded. +Need to get 4348 B of archives. +After this operation, 154 kB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 apt-transport-https all 1.6.14 [4348 B] +Fetched 4348 B in 0s (71.3 kB/s) +Selecting previously unselected package apt-transport-https. +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61437 files and directories currently installed.) +Preparing to unpack .../apt-transport-https_1.6.14_all.deb ... +Unpacking apt-transport-https (1.6.14) ... +Setting up apt-transport-https (1.6.14) ... +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease +Get:2 https://download.docker.com/linux/ubuntu bionic InRelease [64.4 kB] +Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:6 http://security.ubuntu.com/ubuntu bionic-security InRelease +Get:7 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages [19.8 kB] +Fetched 84.3 kB in 1s (124 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following additional packages will be installed: + containerd.io docker-ce-cli docker-ce-rootless-extras docker-scan-plugin + libltdl7 pigz +Suggested packages: + aufs-tools cgroupfs-mount | cgroup-lite +Recommended packages: + slirp4netns +The following NEW packages will be installed: + containerd.io docker-ce docker-ce-cli docker-ce-rootless-extras + docker-scan-plugin libltdl7 pigz +0 upgraded, 7 newly installed, 0 to remove and 4 not upgraded. +Need to get 96.7 MB of archives. +After this operation, 407 MB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu bionic/universe amd64 pigz amd64 2.4-1 [57.4 kB] +Get:2 https://download.docker.com/linux/ubuntu bionic/stable amd64 containerd.io amd64 1.4.9-1 [24.7 MB] +Get:3 http://archive.ubuntu.com/ubuntu bionic/main amd64 libltdl7 amd64 2.4.6-2 [38.8 kB] +Get:4 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce-cli amd64 5:20.10.8~3-0~ubuntu-bionic [38.8 MB] +Get:5 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce amd64 5:20.10.8~3-0~ubuntu-bionic [21.2 MB] +Get:6 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce-rootless-extras amd64 5:20.10.8~3-0~ubuntu-bionic [7911 kB] +Get:7 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-scan-plugin amd64 0.8.0~ubuntu-bionic [3888 kB] +Fetched 96.7 MB in 2s (40.3 MB/s) +Selecting previously unselected package pigz. +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61441 files and directories currently installed.) +Preparing to unpack .../0-pigz_2.4-1_amd64.deb ... +Unpacking pigz (2.4-1) ... +Selecting previously unselected package containerd.io. +Preparing to unpack .../1-containerd.io_1.4.9-1_amd64.deb ... +Unpacking containerd.io (1.4.9-1) ... +Selecting previously unselected package docker-ce-cli. +Preparing to unpack .../2-docker-ce-cli_5%3a20.10.8~3-0~ubuntu-bionic_amd64.deb ... +Unpacking docker-ce-cli (5:20.10.8~3-0~ubuntu-bionic) ... +Selecting previously unselected package docker-ce. +Preparing to unpack .../3-docker-ce_5%3a20.10.8~3-0~ubuntu-bionic_amd64.deb ... +Unpacking docker-ce (5:20.10.8~3-0~ubuntu-bionic) ... +Selecting previously unselected package docker-ce-rootless-extras. +Preparing to unpack .../4-docker-ce-rootless-extras_5%3a20.10.8~3-0~ubuntu-bionic_amd64.deb ... +Unpacking docker-ce-rootless-extras (5:20.10.8~3-0~ubuntu-bionic) ... +Selecting previously unselected package docker-scan-plugin. +Preparing to unpack .../5-docker-scan-plugin_0.8.0~ubuntu-bionic_amd64.deb ... +Unpacking docker-scan-plugin (0.8.0~ubuntu-bionic) ... +Selecting previously unselected package libltdl7:amd64. +Preparing to unpack .../6-libltdl7_2.4.6-2_amd64.deb ... +Unpacking libltdl7:amd64 (2.4.6-2) ... +Setting up containerd.io (1.4.9-1) ... +Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service. +Setting up docker-ce-rootless-extras (5:20.10.8~3-0~ubuntu-bionic) ... +Setting up docker-scan-plugin (0.8.0~ubuntu-bionic) ... +Setting up libltdl7:amd64 (2.4.6-2) ... +Setting up docker-ce-cli (5:20.10.8~3-0~ubuntu-bionic) ... +Setting up pigz (2.4-1) ... +Setting up docker-ce (5:20.10.8~3-0~ubuntu-bionic) ... +Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service. +Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket. +Processing triggers for libc-bin (2.27-3ubuntu1.4) ... +Processing triggers for systemd (237-3ubuntu10.51) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... +Processing triggers for ureadahead (0.100.0-21) ... +Adding user to group 'docker' +... restarted Docker service +Client: Docker Engine - Community + Version: 20.10.8 + API version: 1.41 + Go version: go1.16.6 + Git commit: 3967b7d + Built: Fri Jul 30 19:54:08 2021 + OS/Arch: linux/amd64 + Context: default + Experimental: true + +Server: Docker Engine - Community + Engine: + Version: 20.10.8 + API version: 1.41 (minimum version 1.12) + Go version: go1.16.6 + Git commit: 75249d8 + Built: Fri Jul 30 19:52:16 2021 + OS/Arch: linux/amd64 + Experimental: false + containerd: + Version: 1.4.9 + GitCommit: e25210fe30a0a703442421b0f60afac609f950a3 + runc: + Version: 1.0.1 + GitCommit: v1.0.1-0-g4144b63 + docker-init: + Version: 0.19.0 + GitCommit: de40ad0 +... Docker CE installation done +Creating folders for installation +Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:6 http://security.ubuntu.com/ubuntu bionic-security InRelease +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +apt-transport-https is already the newest version (1.6.14). +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:7 http://security.ubuntu.com/ubuntu bionic-security InRelease +Get:6 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [9383 B] +Get:8 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 Packages [49.4 kB] +Fetched 58.8 kB in 1s (57.4 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease +Hit:2 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease +Hit:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:7 http://security.ubuntu.com/ubuntu bionic-security InRelease +Get:6 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [9383 B] +Fetched 9383 B in 1s (11.0 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Installing Kubernetes Packages ... +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following additional packages will be installed: + conntrack cri-tools kubernetes-cni socat +The following NEW packages will be installed: + conntrack cri-tools kubeadm kubectl kubelet kubernetes-cni socat +0 upgraded, 7 newly installed, 0 to remove and 4 not upgraded. +Need to get 71.4 MB of archives. +After this operation, 302 MB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu bionic/main amd64 conntrack amd64 1:1.4.4+snapshot20161117-6ubuntu2 [30.6 kB] +Get:2 http://archive.ubuntu.com/ubuntu bionic/main amd64 socat amd64 1.7.3.2-2ubuntu2 [342 kB] +Get:3 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 cri-tools amd64 1.13.0-01 [8775 kB] +Get:4 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubernetes-cni amd64 0.8.7-00 [25.0 MB] +Get:5 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubelet amd64 1.15.0-00 [20.2 MB] +Get:6 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubectl amd64 1.15.0-00 [8763 kB] +Get:7 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubeadm amd64 1.15.0-00 [8246 kB] +Fetched 71.4 MB in 3s (25.4 MB/s) +Selecting previously unselected package conntrack. +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61694 files and directories currently installed.) +Preparing to unpack .../0-conntrack_1%3a1.4.4+snapshot20161117-6ubuntu2_amd64.deb ... +Unpacking conntrack (1:1.4.4+snapshot20161117-6ubuntu2) ... +Selecting previously unselected package cri-tools. +Preparing to unpack .../1-cri-tools_1.13.0-01_amd64.deb ... +Unpacking cri-tools (1.13.0-01) ... +Selecting previously unselected package kubernetes-cni. +Preparing to unpack .../2-kubernetes-cni_0.8.7-00_amd64.deb ... +Unpacking kubernetes-cni (0.8.7-00) ... +Selecting previously unselected package socat. +Preparing to unpack .../3-socat_1.7.3.2-2ubuntu2_amd64.deb ... +Unpacking socat (1.7.3.2-2ubuntu2) ... +Selecting previously unselected package kubelet. +Preparing to unpack .../4-kubelet_1.15.0-00_amd64.deb ... +Unpacking kubelet (1.15.0-00) ... +Selecting previously unselected package kubectl. +Preparing to unpack .../5-kubectl_1.15.0-00_amd64.deb ... +Unpacking kubectl (1.15.0-00) ... +Selecting previously unselected package kubeadm. +Preparing to unpack .../6-kubeadm_1.15.0-00_amd64.deb ... +Unpacking kubeadm (1.15.0-00) ... +Setting up conntrack (1:1.4.4+snapshot20161117-6ubuntu2) ... +Setting up kubernetes-cni (0.8.7-00) ... +Setting up cri-tools (1.13.0-01) ... +Setting up socat (1.7.3.2-2ubuntu2) ... +Setting up kubelet (1.15.0-00) ... +Created symlink /etc/systemd/system/multi-user.target.wants/kubelet.service → /lib/systemd/system/kubelet.service. +Setting up kubectl (1.15.0-00) ... +Setting up kubeadm (1.15.0-00) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... +kubelet set on hold. +kubeadm set on hold. +kubectl set on hold. +I0906 20:08:56.355058 11015 version.go:248] remote version is much newer: v1.22.1; falling back to: stable-1.15 +[init] Using Kubernetes version: v1.15.12 +[preflight] Running pre-flight checks + [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/ + [WARNING SystemVerification]: this Docker version is not on the list of validated versions: 20.10.8. Latest validated version: 18.09 +[preflight] Pulling images required for setting up a Kubernetes cluster +[preflight] This might take a minute or two, depending on the speed of your internet connection +[preflight] You can also perform this action in beforehand using 'kubeadm config images pull' +[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env" +[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml" +[kubelet-start] Activating the kubelet service +[certs] Using certificateDir folder "/etc/kubernetes/pki" +[certs] Generating "etcd/ca" certificate and key +[certs] Generating "etcd/healthcheck-client" certificate and key +[certs] Generating "apiserver-etcd-client" certificate and key +[certs] Generating "etcd/server" certificate and key +[certs] etcd/server serving cert is signed for DNS names [osm localhost] and IPs [192.168.64.19 127.0.0.1 ::1] +[certs] Generating "etcd/peer" certificate and key +[certs] etcd/peer serving cert is signed for DNS names [osm localhost] and IPs [192.168.64.19 127.0.0.1 ::1] +[certs] Generating "ca" certificate and key +[certs] Generating "apiserver" certificate and key +[certs] apiserver serving cert is signed for DNS names [osm kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 192.168.64.19] +[certs] Generating "apiserver-kubelet-client" certificate and key +[certs] Generating "front-proxy-ca" certificate and key +[certs] Generating "front-proxy-client" certificate and key +[certs] Generating "sa" key and public key +[kubeconfig] Using kubeconfig folder "/etc/kubernetes" +[kubeconfig] Writing "admin.conf" kubeconfig file +[kubeconfig] Writing "kubelet.conf" kubeconfig file +[kubeconfig] Writing "controller-manager.conf" kubeconfig file +[kubeconfig] Writing "scheduler.conf" kubeconfig file +[control-plane] Using manifest folder "/etc/kubernetes/manifests" +[control-plane] Creating static Pod manifest for "kube-apiserver" +[control-plane] Creating static Pod manifest for "kube-controller-manager" +[control-plane] Creating static Pod manifest for "kube-scheduler" +[etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests" +[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s +[apiclient] All control plane components are healthy after 27.504946 seconds +[upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace +[kubelet] Creating a ConfigMap "kubelet-config-1.15" in namespace kube-system with the configuration for the kubelets in the cluster +[upload-certs] Skipping phase. Please see --upload-certs +[mark-control-plane] Marking the node osm as control-plane by adding the label "node-role.kubernetes.io/master=''" +[mark-control-plane] Marking the node osm as control-plane by adding the taints [node-role.kubernetes.io/master:NoSchedule] +[bootstrap-token] Using token: kn0vr5.xws6ut9lw1oau25w +[bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles +[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials +[bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token +[bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster +[bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace +[addons] Applied essential addon: CoreDNS +[addons] Applied essential addon: kube-proxy + +Your Kubernetes control-plane has initialized successfully! + +To start using your cluster, you need to run the following as a regular user: + + mkdir -p $HOME/.kube + sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config + +You should now deploy a pod network to the cluster. +Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: + https://kubernetes.io/docs/concepts/cluster-administration/addons/ + +Then you can join any number of worker nodes by running the following on each as root: + +kubeadm join 192.168.64.19:6443 --token kn0vr5.xws6ut9lw1oau25w \ + --discovery-token-ca-cert-hash sha256:74d6e6d0a214f8fcb18ad2ca37b5cb087c47f668a32b63a13f871bd68e24d16f +Error from server (NotFound): namespaces "osm" not found +podsecuritypolicy.policy/psp.flannel.unprivileged created +clusterrole.rbac.authorization.k8s.io/flannel created +clusterrolebinding.rbac.authorization.k8s.io/flannel created +serviceaccount/flannel created +configmap/kube-flannel-cfg created +daemonset.apps/kube-flannel-ds created +node/osm untainted +Helm is not installed, installing ... + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed + 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 57 13.0M 57 7744k 0 0 12.2M 0 0:00:01 --:--:-- 0:00:01 12.2M 100 13.0M 100 13.0M 0 0 13.3M 0 --:--:-- --:--:-- --:--:-- 13.3M +linux-amd64/ +linux-amd64/helm +linux-amd64/LICENSE +linux-amd64/README.md +"stable" has been added to your repositories +Hang tight while we grab the latest from your chart repositories... +...Successfully got an update from the "stable" chart repository +Update Complete. ⎈Happy Helming!⎈ +Installing OpenEBS +namespace/openebs created +"openebs" has been added to your repositories +Hang tight while we grab the latest from your chart repositories... +...Successfully got an update from the "openebs" chart repository +...Successfully got an update from the "stable" chart repository +Update Complete. ⎈Happy Helming!⎈ +NAME: openebs +LAST DEPLOYED: Mon Sep 6 20:10:27 2021 +NAMESPACE: openebs +STATUS: deployed +REVISION: 1 +TEST SUITE: None +NOTES: +The OpenEBS has been installed. Check its status by running: +$ kubectl get pods -n openebs + +For dynamically creating OpenEBS Volumes, you can either create a new StorageClass or +use one of the default storage classes provided by OpenEBS. + +Use `kubectl get sc` to see the list of installed OpenEBS StorageClasses. A sample +PVC spec using `openebs-jiva-default` StorageClass is given below:" + +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: demo-vol-claim +spec: + storageClassName: openebs-jiva-default + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5G +--- + +Please note that, OpenEBS uses iSCSI for connecting applications with the +OpenEBS Volumes and your nodes should have the iSCSI initiator installed. + +For more information, visit our Slack at https://openebs.io/community or view the documentation online at http://docs.openebs.io/. +NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION +openebs openebs 1 2021-09-06 20:10:27.068034231 +0200 CEST deployed openebs-1.12.0 1.12.0 +Waiting for storageclass +Storageclass available +storageclass.storage.k8s.io/openebs-hostpath patched +namespace/metallb-system created +serviceaccount/controller created +serviceaccount/speaker created +clusterrole.rbac.authorization.k8s.io/metallb-system:controller created +clusterrole.rbac.authorization.k8s.io/metallb-system:speaker created +role.rbac.authorization.k8s.io/leader-election created +role.rbac.authorization.k8s.io/config-watcher created +clusterrolebinding.rbac.authorization.k8s.io/metallb-system:controller created +clusterrolebinding.rbac.authorization.k8s.io/metallb-system:speaker created +rolebinding.rbac.authorization.k8s.io/config-watcher created +rolebinding.rbac.authorization.k8s.io/leader-election created +daemonset.apps/speaker created +deployment.apps/controller created +configmap/config created +Installing juju + Ensure prerequisites for "juju" are available / Ensure prerequisites for "juju" are available - Ensure prerequisites for "core18" are available \ Download snap "core18" (2128) from channel "stable" | Download snap "core18" (2128) from channel "stable" / Download snap "core18" (2128) from channel "stable" - Download snap "core18" (2128) from channel "stable" \ Download snap "core18" (2128) from channel "stable" |[?25l Download snap "core18" (2128) from channel "stable" 5% 26.9MB/s 2.05s Download snap "core18" (2128) from channel "stable" 14% 39.7MB/s 1.25s Download snap "core18" (2128) from channel "stable" 24% 44.0MB/s 1.01s Download snap "core18" (2128) from channel "stable"  30% 41.4MB/s 984ms Download snap "core18" (2128) from channel "stable"  39% 43.4MB/s 816ms Download snap "core18" (2128) from channel "stable"  46% 42.0MB/s 747ms Download snap "core18" (2128) from channel "stable"  55% 42.4MB/s 622ms Download snap "core18" (2128) from channel "stable"  64% 43.4MB/s 485ms Download snap "core18" (2128) from channel "stable"  73% 44.1MB/s 362ms Download snap "core18" (2128) from channel "stable"  83% 45.6MB/s 216ms Download snap "core18" (2128) from channel "stable" 91% 44.9MB/s 114ms Download snap "core18" (2128) from channel "stable" 100% 44.3MB/s 0.0ns Download snap "core18" (2128) from channel "stable" 100% 40.7MB/s 0.0ns Download snap "core18" (2128) from channel "stable" 100% 38.0MB/s 0.0ns Download snap "core18" (2128) from channel "stable" 100% 35.6MB/s 0.0ns Download snap "core18" (2128) from channel "stable" 100% 33.4MB/s 0.0ns Download snap "core18" (2128) from channel "stable" 100% 31.5MB/s 0.0ns Download snap "core18" (2128) from channel "stable" 100% 29.8MB/s 0.0ns Download snap "core18" (2128) from channel "stable" 100% 28.3MB/s 0.0ns Fetch and check assertions for snap "core18" (2128) / Fetch and check assertions for snap "core18" (2128) - Fetch and check assertions for snap "core18" (2128) \ Mount snap "core18" (2128) | Mount snap "core18" (2128) / Mount snap "core18" (2128) - Mount snap "core18" (2128) \ Mount snap "core18" (2128) | Mount snap "core18" (2128) / Mount snap "core18" (2128) - Mount snap "core18" (2128) \ Mount snap "core18" (2128) | Mount snap "core18" (2128) / Mount snap "core18" (2128) - Mount snap "core18" (2128) \ Mount snap "core18" (2128) | Mount snap "core18" (2128) / Mount snap "core18" (2128) - Mount snap "core18" (2128) \ Mount snap "core18" (2128) | Mount snap "core18" (2128) / Mount snap "core18" (2128) - Mount snap "core18" (2128) \ Mount snap "core18" (2128) | Mount snap "core18" (2128) / Mount snap "core18" (2128) - Mount snap "core18" (2128) \ Mount snap "core18" (2128) | Mount snap "core18" (2128) / Mount snap "core18" (2128) - Mount snap "core18" (2128) \ Mount snap "core18" (2128) | Mount snap "core18" (2128) / Mount snap "core18" (2128) - Mount snap "core18" (2128) \ Setup snap "core18" (2128) security profiles | Set automatic aliases for snap "core18" / Download snap "juju" (17062) from channel "2.9/stable" - Download snap "juju" (17062) from channel "2.9/stable" \ Download snap "juju" (17062) from channel "2.9/stable" |[?25l Download snap "juju" (17062) from channel "2.9/stable" 0% 0B/s ages! Download snap "juju" (17062) from channel "2.9/stable" 0% 0B/s ages! Download snap "juju" (17062) from channel "2.9/stable" 0% 559kB/s 3m06s Download snap "juju" (17062) from channel "2.9/stable" 0% 873kB/s 1m59s Download snap "juju" (17062) from channel "2.9/stable" 1% 1.05MB/s 1m39s Download snap "juju" (17062) from channel "2.9/stable" 1% 1.20MB/s 1m26s Download snap "juju" (17062) from channel "2.9/stable" 1% 1.30MB/s 1m19s Download snap "juju" (17062) from channel "2.9/stable" 1% 1.59MB/s 1m04s Download snap "juju" (17062) from channel "2.9/stable" 2% 1.84MB/s 55.5s Download snap "juju" (17062) from channel "2.9/stable" 2% 2.22MB/s 45.7s Download snap "juju" (17062) from channel "2.9/stable" 3% 2.55MB/s 39.6s Download snap "juju" (17062) from channel "2.9/stable" 4% 2.98MB/s 33.6s Download snap "juju" (17062) from channel "2.9/stable" 5% 3.49MB/s 28.4s Download snap "juju" (17062) from channel "2.9/stable" 6% 4.07MB/s 24.0s Download snap "juju" (17062) from channel "2.9/stable" 8% 4.83MB/s 19.9s Download snap "juju" (17062) from channel "2.9/stable" 9% 5.25MB/s 18.1s Download snap "juju" (17062) from channel "2.9/stable" 12% 6.76MB/s 13.5s Download snap "juju" (17062) from channel "2.9/stable" 14% 7.17MB/s 12.5s Download snap "juju" (17062) from channel "2.9/stable" 16% 8.02MB/s 10.9s Download snap "juju" (17062) from channel "2.9/stable" 19% 8.97MB/s 9.40s Download snap "juju" (17062) from channel "2.9/stable" 23% 10.1MB/s 7.98s Download snap "juju" (17062) from channel "2.9/stable" 26% 11.0MB/s 7.05s Download snap "juju" (17062) from channel "2.9/stable" 28% 11.7MB/s 6.37s Download snap "juju" (17062) from channel "2.9/stable" 31% 12.1MB/s 5.96s Download snap "juju" (17062) from channel "2.9/stable"  34% 13.0MB/s 5.29s Download snap "juju" (17062) from channel "2.9/stable"  37% 13.7MB/s 4.77s Download snap "juju" (17062) from channel "2.9/stable"  41% 14.3MB/s 4.32s Download snap "juju" (17062) from channel "2.9/stable"  45% 15.2MB/s 3.80s Download snap "juju" (17062) from channel "2.9/stable"  48% 15.8MB/s 3.42s Download snap "juju" (17062) from channel "2.9/stable"  53% 16.6MB/s 2.98s Download snap "juju" (17062) from channel "2.9/stable"  58% 17.7MB/s 2.50s Download snap "juju" (17062) from channel "2.9/stable"  61% 18.2MB/s 2.22s Download snap "juju" (17062) from channel "2.9/stable"  65% 18.8MB/s 1.95s Download snap "juju" (17062) from channel "2.9/stable"  69% 19.3MB/s 1.68s Download snap "juju" (17062) from channel "2.9/stable"  73% 19.9MB/s 1.42s Download snap "juju" (17062) from channel "2.9/stable"  76% 20.2MB/s 1.24s Download snap "juju" (17062) from channel "2.9/stable"  79% 20.5MB/s 1.06s Download snap "juju" (17062) from channel "2.9/stable"  83% 21.0MB/s 855ms Download snap "juju" (17062) from channel "2.9/stable"  86% 21.3MB/s 660ms Download snap "juju" (17062) from channel "2.9/stable" 91% 21.8MB/s 451ms Download snap "juju" (17062) from channel "2.9/stable" 95% 22.3MB/s 242ms Download snap "juju" (17062) from channel "2.9/stable" 99% 22.8MB/s 41ms Download snap "juju" (17062) from channel "2.9/stable" 100% 22.5MB/s 0.0ns Download snap "juju" (17062) from channel "2.9/stable" 100% 22.0MB/s 0.0ns Download snap "juju" (17062) from channel "2.9/stable" 100% 21.5MB/s 0.0ns Download snap "juju" (17062) from channel "2.9/stable" 100% 21.0MB/s 0.0ns Download snap "juju" (17062) from channel "2.9/stable" 100% 20.3MB/s 0.0ns Download snap "juju" (17062) from channel "2.9/stable" 100% 19.8MB/s 0.0ns Download snap "juju" (17062) from channel "2.9/stable" 100% 19.4MB/s 0.0ns Download snap "juju" (17062) from channel "2.9/stable" 100% 19.0MB/s 0.0ns Download snap "juju" (17062) from channel "2.9/stable" 100% 18.6MB/s 0.0ns Fetch and check assertions for snap "juju" (17062) / Fetch and check assertions for snap "juju" (17062) - Fetch and check assertions for snap "juju" (17062) \ Mount snap "juju" (17062) | Mount snap "juju" (17062) / Mount snap "juju" (17062) - Mount snap "juju" (17062) \ Mount snap "juju" (17062) | Mount snap "juju" (17062) / Mount snap "juju" (17062) - Setup snap "juju" (17062) security profiles \ Setup snap "juju" (17062) security profiles | Start snap "juju" (17062) services / Start snap "juju" (17062) services - Start snap "juju" (17062) services \ Start snap "juju" (17062) services | Run configure hook of "juju" snap if present / [?25hjuju (2.9/stable) 2.9.12 from Canonical* installed +no crontab for ubuntu ++ LAYER_BASIC='gcc build-essential python3-pip python3-setuptools python3-yaml' ++ TRUSTY_PACKAGES=python-virtualenv ++ XENIAL_PACKAGES=virtualenv ++ BIONIC_PACKAGES=virtualenv ++ DOWNLOAD_PACKAGES= ++ CLOUD_INIT_PACKAGES='curl cpu-checker bridge-utils cloud-utils tmux ubuntu-fan' ++ PACKAGES='gcc build-essential python3-pip python3-setuptools python3-yaml ' +++ juju version +Since Juju 2 is being run for the first time, downloaded the latest public cloud information. ++ JUJU_FULL_VERSION=2.9.12-ubuntu-amd64 +++ echo 2.9.12-ubuntu-amd64 +++ awk -F- '{print $1}' ++ JUJU_VERSION=2.9.12 +++ echo 2.9.12-ubuntu-amd64 +++ awk -F- '{print $2}' ++ OS_VERSION=ubuntu +++ echo 2.9.12-ubuntu-amd64 +++ awk -F- '{print $3}' ++ ARCH=amd64 ++ '[' 1 == 0 ']' ++ '[' 0 == 1 ']' ++ '[' 1 == 1 ']' ++ cache xenial virtualenv ++ series=xenial ++ container=juju-xenial-base ++ alias=juju/xenial/amd64 ++ lxc delete juju-xenial-base -f +Error: not found ++ true ++ lxc image copy ubuntu:xenial local: --alias clean-xenial + Copying the image: metadata: 100% (1.18GB/s) Copying the image: rootfs: 1% (2.26MB/s) Copying the image: rootfs: 2% (3.95MB/s) Copying the image: rootfs: 3% (5.49MB/s) Copying the image: rootfs: 4% (7.00MB/s) Copying the image: rootfs: 5% (8.18MB/s) Copying the image: rootfs: 6% (9.16MB/s) Copying the image: rootfs: 7% (10.25MB/s) Copying the image: rootfs: 8% (11.12MB/s) Copying the image: rootfs: 9% (12.00MB/s) Copying the image: rootfs: 10% (12.70MB/s) Copying the image: rootfs: 10% (13.50MB/s) Copying the image: rootfs: 11% (13.83MB/s) Copying the image: rootfs: 12% (14.25MB/s) Copying the image: rootfs: 13% (14.87MB/s) Copying the image: rootfs: 14% (15.06MB/s) Copying the image: rootfs: 15% (15.83MB/s) Copying the image: rootfs: 16% (15.91MB/s) Copying the image: rootfs: 17% (15.76MB/s) Copying the image: rootfs: 18% (15.82MB/s) Copying the image: rootfs: 19% (16.37MB/s) Copying the image: rootfs: 20% (16.34MB/s) Copying the image: rootfs: 20% (16.47MB/s) Copying the image: rootfs: 21% (16.50MB/s) Copying the image: rootfs: 22% (16.61MB/s) Copying the image: rootfs: 23% (17.01MB/s) Copying the image: rootfs: 24% (16.11MB/s) Copying the image: rootfs: 25% (16.43MB/s) Copying the image: rootfs: 26% (16.58MB/s) Copying the image: rootfs: 27% (16.79MB/s) Copying the image: rootfs: 28% (17.09MB/s) Copying the image: rootfs: 29% (17.27MB/s) Copying the image: rootfs: 30% (17.27MB/s) Copying the image: rootfs: 31% (17.61MB/s) Copying the image: rootfs: 31% (17.67MB/s) Copying the image: rootfs: 32% (17.60MB/s) Copying the image: rootfs: 33% (17.53MB/s) Copying the image: rootfs: 34% (17.40MB/s) Copying the image: rootfs: 35% (17.35MB/s) Copying the image: rootfs: 36% (17.59MB/s) Copying the image: rootfs: 37% (17.68MB/s) Copying the image: rootfs: 38% (17.62MB/s) Copying the image: rootfs: 39% (17.81MB/s) Copying the image: rootfs: 40% (17.90MB/s) Copying the image: rootfs: 41% (17.97MB/s) Copying the image: rootfs: 41% (18.01MB/s) Copying the image: rootfs: 42% (18.19MB/s) Copying the image: rootfs: 43% (18.31MB/s) Copying the image: rootfs: 44% (18.47MB/s) Copying the image: rootfs: 45% (18.55MB/s) Copying the image: rootfs: 46% (18.74MB/s) Copying the image: rootfs: 47% (18.80MB/s) Copying the image: rootfs: 48% (18.99MB/s) Copying the image: rootfs: 49% (19.06MB/s) Copying the image: rootfs: 50% (19.22MB/s) Copying the image: rootfs: 51% (19.07MB/s) Copying the image: rootfs: 51% (19.27MB/s) Copying the image: rootfs: 52% (19.33MB/s) Copying the image: rootfs: 53% (19.41MB/s) Copying the image: rootfs: 54% (19.49MB/s) Copying the image: rootfs: 55% (19.63MB/s) Copying the image: rootfs: 56% (19.70MB/s) Copying the image: rootfs: 57% (19.81MB/s) Copying the image: rootfs: 58% (19.86MB/s) Copying the image: rootfs: 59% (19.99MB/s) Copying the image: rootfs: 60% (20.08MB/s) Copying the image: rootfs: 61% (20.11MB/s) Copying the image: rootfs: 61% (20.23MB/s) Copying the image: rootfs: 62% (20.28MB/s) Copying the image: rootfs: 63% (20.39MB/s) Copying the image: rootfs: 64% (20.45MB/s) Copying the image: rootfs: 65% (20.51MB/s) Copying the image: rootfs: 66% (20.61MB/s) Copying the image: rootfs: 67% (20.69MB/s) Copying the image: rootfs: 68% (20.68MB/s) Copying the image: rootfs: 69% (20.65MB/s) Copying the image: rootfs: 70% (20.80MB/s) Copying the image: rootfs: 71% (20.73MB/s) Copying the image: rootfs: 72% (20.79MB/s) Copying the image: rootfs: 72% (20.88MB/s) Copying the image: rootfs: 73% (20.92MB/s) Copying the image: rootfs: 74% (20.98MB/s) Copying the image: rootfs: 75% (21.03MB/s) Copying the image: rootfs: 76% (21.06MB/s) Copying the image: rootfs: 77% (21.16MB/s) Copying the image: rootfs: 78% (21.22MB/s) Copying the image: rootfs: 79% (21.29MB/s) Copying the image: rootfs: 80% (21.27MB/s) Copying the image: rootfs: 81% (21.40MB/s) Copying the image: rootfs: 82% (21.42MB/s) Copying the image: rootfs: 82% (21.50MB/s) Copying the image: rootfs: 83% (21.54MB/s) Copying the image: rootfs: 84% (21.61MB/s) Copying the image: rootfs: 85% (21.62MB/s) Copying the image: rootfs: 86% (21.59MB/s) Copying the image: rootfs: 87% (21.68MB/s) Copying the image: rootfs: 88% (21.72MB/s) Copying the image: rootfs: 89% (21.72MB/s) Copying the image: rootfs: 90% (21.77MB/s) Copying the image: rootfs: 91% (21.63MB/s) Copying the image: rootfs: 92% (21.50MB/s) Copying the image: rootfs: 92% (21.44MB/s) Copying the image: rootfs: 93% (21.38MB/s) Copying the image: rootfs: 94% (21.49MB/s) Copying the image: rootfs: 95% (21.48MB/s) Copying the image: rootfs: 96% (21.61MB/s) Copying the image: rootfs: 97% (21.57MB/s) Copying the image: rootfs: 98% (21.58MB/s) Copying the image: rootfs: 99% (21.64MB/s) Copying the image: rootfs: 100% (21.60MB/s) Image copied successfully! ++ lxc launch ubuntu:xenial juju-xenial-base +Creating juju-xenial-base + Retrieving image: Unpack: 100% (4.33GB/s) Retrieving image: Unpack: 100% (4.33GB/s) Starting juju-xenial-base + Remapping container filesystem + sleep 15 ++ lxc exec juju-xenial-base -- apt-get update -y +Hit:1 http://archive.ubuntu.com/ubuntu xenial InRelease +Get:2 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB] +Get:3 http://security.ubuntu.com/ubuntu xenial-security InRelease [109 kB] +Get:4 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB] +Get:5 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [7532 kB] +Get:6 http://archive.ubuntu.com/ubuntu xenial/universe Translation-en [4354 kB] +Get:7 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [144 kB] +Get:8 http://archive.ubuntu.com/ubuntu xenial/multiverse Translation-en [106 kB] +Get:9 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [2049 kB] +Get:10 http://archive.ubuntu.com/ubuntu xenial-updates/main Translation-en [482 kB] +Get:11 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [1219 kB] +Get:12 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [1648 kB] +Get:13 http://archive.ubuntu.com/ubuntu xenial-updates/universe Translation-en [358 kB] +Get:14 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [22.6 kB] +Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse Translation-en [8476 B] +Get:16 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [9812 B] +Get:17 http://archive.ubuntu.com/ubuntu xenial-backports/main Translation-en [4456 B] +Get:18 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [11.3 kB] +Get:19 http://archive.ubuntu.com/ubuntu xenial-backports/universe Translation-en [4476 B] +Get:20 http://security.ubuntu.com/ubuntu xenial-security/main Translation-en [380 kB] +Get:21 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [785 kB] +Get:22 http://security.ubuntu.com/ubuntu xenial-security/universe Translation-en [225 kB] +Get:23 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [7864 B] +Get:24 http://security.ubuntu.com/ubuntu xenial-security/multiverse Translation-en [2672 B] +Fetched 19.7 MB in 5s (3862 kB/s) +Reading package lists... ++ lxc exec juju-xenial-base -- apt-get upgrade -y +Reading package lists... +Building dependency tree... +Reading state information... +Calculating upgrade... +The following package was automatically installed and is no longer required: + libfreetype6 +Use 'apt autoremove' to remove it. +The following packages have been kept back: + ubuntu-advantage-tools update-notifier-common +The following packages will be upgraded: + apt apt-transport-https apt-utils bind9-host distro-info-data dnsutils + libapt-inst2.0 libapt-pkg5.0 libbind9-140 libc-bin libc6 libdns-export162 + libdns162 libisc-export160 libisc160 libisccc140 libisccfg140 liblwres141 + libssl1.0.0 locales multiarch-support openssl python-apt-common python3-apt + sosreport +25 upgraded, 0 newly installed, 0 to remove and 2 not upgraded. +Need to get 12.6 MB of archives. +After this operation, 48.1 kB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libc6 amd64 2.23-0ubuntu11.3 [2590 kB] +Get:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 locales all 2.23-0ubuntu11.3 [3197 kB] +Get:3 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libc-bin amd64 2.23-0ubuntu11.3 [629 kB] +Get:4 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libapt-pkg5.0 amd64 1.2.35 [715 kB] +Get:5 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libapt-inst2.0 amd64 1.2.35 [54.8 kB] +Get:6 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apt amd64 1.2.35 [1107 kB] +Get:7 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apt-utils amd64 1.2.35 [196 kB] +Get:8 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 multiarch-support amd64 2.23-0ubuntu11.3 [6830 B] +Get:9 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 distro-info-data all 0.28ubuntu0.18 [4530 B] +Get:10 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libisc-export160 amd64 1:9.10.3.dfsg.P4-8ubuntu1.19 [153 kB] +Get:11 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libdns-export162 amd64 1:9.10.3.dfsg.P4-8ubuntu1.19 [665 kB] +Get:12 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libssl1.0.0 amd64 1.0.2g-1ubuntu4.20 [1083 kB] +Get:13 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apt-transport-https amd64 1.2.35 [26.6 kB] +Get:14 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 bind9-host amd64 1:9.10.3.dfsg.P4-8ubuntu1.19 [38.3 kB] +Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 dnsutils amd64 1:9.10.3.dfsg.P4-8ubuntu1.19 [88.9 kB] +Get:16 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libisc160 amd64 1:9.10.3.dfsg.P4-8ubuntu1.19 [215 kB] +Get:17 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libdns162 amd64 1:9.10.3.dfsg.P4-8ubuntu1.19 [872 kB] +Get:18 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libisccc140 amd64 1:9.10.3.dfsg.P4-8ubuntu1.19 [16.3 kB] +Get:19 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libisccfg140 amd64 1:9.10.3.dfsg.P4-8ubuntu1.19 [40.5 kB] +Get:20 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 liblwres141 amd64 1:9.10.3.dfsg.P4-8ubuntu1.19 [33.9 kB] +Get:21 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libbind9-140 amd64 1:9.10.3.dfsg.P4-8ubuntu1.19 [23.6 kB] +Get:22 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssl amd64 1.0.2g-1ubuntu4.20 [492 kB] +Get:23 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python-apt-common all 1.1.0~beta1ubuntu0.16.04.12 [16.7 kB] +Get:24 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-apt amd64 1.1.0~beta1ubuntu0.16.04.12 [145 kB] +Get:25 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 sosreport amd64 3.9.1-1ubuntu0.16.04.2 [170 kB] +dpkg-preconfigure: unable to re-open stdin: No such file or directory +Fetched 12.6 MB in 0s (18.9 MB/s) +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 25821 files and directories currently installed.) +Preparing to unpack .../libc6_2.23-0ubuntu11.3_amd64.deb ... +Unpacking libc6:amd64 (2.23-0ubuntu11.3) over (2.23-0ubuntu11.2) ... +Setting up libc6:amd64 (2.23-0ubuntu11.3) ... +Processing triggers for libc-bin (2.23-0ubuntu11.2) ... +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 25821 files and directories currently installed.) +Preparing to unpack .../locales_2.23-0ubuntu11.3_all.deb ... +Unpacking locales (2.23-0ubuntu11.3) over (2.23-0ubuntu11.2) ... +Preparing to unpack .../libc-bin_2.23-0ubuntu11.3_amd64.deb ... +Unpacking libc-bin (2.23-0ubuntu11.3) over (2.23-0ubuntu11.2) ... +Processing triggers for man-db (2.7.5-1) ... +Setting up libc-bin (2.23-0ubuntu11.3) ... +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 25821 files and directories currently installed.) +Preparing to unpack .../libapt-pkg5.0_1.2.35_amd64.deb ... +Unpacking libapt-pkg5.0:amd64 (1.2.35) over (1.2.32ubuntu0.2) ... +Processing triggers for libc-bin (2.23-0ubuntu11.3) ... +Setting up libapt-pkg5.0:amd64 (1.2.35) ... +Processing triggers for libc-bin (2.23-0ubuntu11.3) ... +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 25821 files and directories currently installed.) +Preparing to unpack .../libapt-inst2.0_1.2.35_amd64.deb ... +Unpacking libapt-inst2.0:amd64 (1.2.35) over (1.2.32ubuntu0.2) ... +Preparing to unpack .../archives/apt_1.2.35_amd64.deb ... +Unpacking apt (1.2.35) over (1.2.32ubuntu0.2) ... +Processing triggers for libc-bin (2.23-0ubuntu11.3) ... +Processing triggers for man-db (2.7.5-1) ... +Setting up apt (1.2.35) ... +Processing triggers for libc-bin (2.23-0ubuntu11.3) ... +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 25821 files and directories currently installed.) +Preparing to unpack .../apt-utils_1.2.35_amd64.deb ... +Unpacking apt-utils (1.2.35) over (1.2.32ubuntu0.2) ... +Preparing to unpack .../multiarch-support_2.23-0ubuntu11.3_amd64.deb ... +Unpacking multiarch-support (2.23-0ubuntu11.3) over (2.23-0ubuntu11.2) ... +Processing triggers for man-db (2.7.5-1) ... +Setting up multiarch-support (2.23-0ubuntu11.3) ... +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 25821 files and directories currently installed.) +Preparing to unpack .../distro-info-data_0.28ubuntu0.18_all.deb ... +Unpacking distro-info-data (0.28ubuntu0.18) over (0.28ubuntu0.17) ... +Preparing to unpack .../libisc-export160_1%3a9.10.3.dfsg.P4-8ubuntu1.19_amd64.deb ... +Unpacking libisc-export160 (1:9.10.3.dfsg.P4-8ubuntu1.19) over (1:9.10.3.dfsg.P4-8ubuntu1.18) ... +Preparing to unpack .../libdns-export162_1%3a9.10.3.dfsg.P4-8ubuntu1.19_amd64.deb ... +Unpacking libdns-export162 (1:9.10.3.dfsg.P4-8ubuntu1.19) over (1:9.10.3.dfsg.P4-8ubuntu1.18) ... +Preparing to unpack .../libssl1.0.0_1.0.2g-1ubuntu4.20_amd64.deb ... +Unpacking libssl1.0.0:amd64 (1.0.2g-1ubuntu4.20) over (1.0.2g-1ubuntu4.19) ... +Preparing to unpack .../apt-transport-https_1.2.35_amd64.deb ... +Unpacking apt-transport-https (1.2.35) over (1.2.32ubuntu0.2) ... +Preparing to unpack .../bind9-host_1%3a9.10.3.dfsg.P4-8ubuntu1.19_amd64.deb ... +Unpacking bind9-host (1:9.10.3.dfsg.P4-8ubuntu1.19) over (1:9.10.3.dfsg.P4-8ubuntu1.18) ... +Preparing to unpack .../dnsutils_1%3a9.10.3.dfsg.P4-8ubuntu1.19_amd64.deb ... +Unpacking dnsutils (1:9.10.3.dfsg.P4-8ubuntu1.19) over (1:9.10.3.dfsg.P4-8ubuntu1.18) ... +Preparing to unpack .../libisc160_1%3a9.10.3.dfsg.P4-8ubuntu1.19_amd64.deb ... +Unpacking libisc160:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.19) over (1:9.10.3.dfsg.P4-8ubuntu1.18) ... +Preparing to unpack .../libdns162_1%3a9.10.3.dfsg.P4-8ubuntu1.19_amd64.deb ... +Unpacking libdns162:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.19) over (1:9.10.3.dfsg.P4-8ubuntu1.18) ... +Preparing to unpack .../libisccc140_1%3a9.10.3.dfsg.P4-8ubuntu1.19_amd64.deb ... +Unpacking libisccc140:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.19) over (1:9.10.3.dfsg.P4-8ubuntu1.18) ... +Preparing to unpack .../libisccfg140_1%3a9.10.3.dfsg.P4-8ubuntu1.19_amd64.deb ... +Unpacking libisccfg140:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.19) over (1:9.10.3.dfsg.P4-8ubuntu1.18) ... +Preparing to unpack .../liblwres141_1%3a9.10.3.dfsg.P4-8ubuntu1.19_amd64.deb ... +Unpacking liblwres141:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.19) over (1:9.10.3.dfsg.P4-8ubuntu1.18) ... +Preparing to unpack .../libbind9-140_1%3a9.10.3.dfsg.P4-8ubuntu1.19_amd64.deb ... +Unpacking libbind9-140:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.19) over (1:9.10.3.dfsg.P4-8ubuntu1.18) ... +Preparing to unpack .../openssl_1.0.2g-1ubuntu4.20_amd64.deb ... +Unpacking openssl (1.0.2g-1ubuntu4.20) over (1.0.2g-1ubuntu4.19) ... +Preparing to unpack .../python-apt-common_1.1.0~beta1ubuntu0.16.04.12_all.deb ... +Unpacking python-apt-common (1.1.0~beta1ubuntu0.16.04.12) over (1.1.0~beta1ubuntu0.16.04.11) ... +Preparing to unpack .../python3-apt_1.1.0~beta1ubuntu0.16.04.12_amd64.deb ... +Unpacking python3-apt (1.1.0~beta1ubuntu0.16.04.12) over (1.1.0~beta1ubuntu0.16.04.11) ... +Preparing to unpack .../sosreport_3.9.1-1ubuntu0.16.04.2_amd64.deb ... +Unpacking sosreport (3.9.1-1ubuntu0.16.04.2) over (3.9.1-1ubuntu0.16.04.1) ... +Processing triggers for libc-bin (2.23-0ubuntu11.3) ... +Processing triggers for man-db (2.7.5-1) ... +Setting up locales (2.23-0ubuntu11.3) ... +Generating locales (this might take a while)... + en_US.UTF-8... done +Generation complete. +Setting up libapt-inst2.0:amd64 (1.2.35) ... +Setting up apt-utils (1.2.35) ... +Setting up distro-info-data (0.28ubuntu0.18) ... +Setting up libisc-export160 (1:9.10.3.dfsg.P4-8ubuntu1.19) ... +Setting up libdns-export162 (1:9.10.3.dfsg.P4-8ubuntu1.19) ... +Setting up libssl1.0.0:amd64 (1.0.2g-1ubuntu4.20) ... +Setting up apt-transport-https (1.2.35) ... +Setting up libisc160:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.19) ... +Setting up libdns162:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.19) ... +Setting up libisccc140:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.19) ... +Setting up libisccfg140:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.19) ... +Setting up libbind9-140:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.19) ... +Setting up liblwres141:amd64 (1:9.10.3.dfsg.P4-8ubuntu1.19) ... +Setting up bind9-host (1:9.10.3.dfsg.P4-8ubuntu1.19) ... +Setting up dnsutils (1:9.10.3.dfsg.P4-8ubuntu1.19) ... +Setting up openssl (1.0.2g-1ubuntu4.20) ... +Setting up python-apt-common (1.1.0~beta1ubuntu0.16.04.12) ... +Setting up python3-apt (1.1.0~beta1ubuntu0.16.04.12) ... +Setting up sosreport (3.9.1-1ubuntu0.16.04.2) ... +Processing triggers for libc-bin (2.23-0ubuntu11.3) ... ++ lxc exec juju-xenial-base -- apt-get install -y curl cpu-checker bridge-utils cloud-utils tmux ubuntu-fan gcc build-essential python3-pip python3-setuptools python3-yaml virtualenv +Reading package lists... +Building dependency tree... +Reading state information... +python3-yaml is already the newest version (3.11-3build1). +tmux is already the newest version (2.1-3build1). +curl is already the newest version (7.47.0-1ubuntu2.19). +The following package was automatically installed and is no longer required: + libfreetype6 +Use 'apt autoremove' to remove it. +The following additional packages will be installed: + binutils cloud-image-utils cpp cpp-5 distro-info dpkg-dev fakeroot g++ g++-5 + gcc-5 genisoimage libaio1 libalgorithm-diff-perl libalgorithm-diff-xs-perl + libalgorithm-merge-perl libasan2 libatomic1 libboost-iostreams1.58.0 + libboost-random1.58.0 libboost-system1.58.0 libboost-thread1.58.0 + libc-dev-bin libc6-dev libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev + libfakeroot libfile-fcntllock-perl libgcc-5-dev libgomp1 libiscsi2 libisl15 + libitm1 liblsan0 libmpc3 libmpx0 libnspr4 libnss3 libnss3-nssdb + libpython3-dev libpython3.5-dev libquadmath0 librados2 librbd1 + libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make manpages-dev + msr-tools python-pip-whl python3-dev python3-virtualenv python3-wheel + python3.5-dev qemu-block-extra qemu-utils sharutils +Suggested packages: + binutils-doc cloud-utils-euca cpp-doc gcc-5-locales shunit2 debian-keyring + g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib autoconf + automake libtool flex bison gdb gcc-doc gcc-5-multilib libgcc1-dbg + libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg + libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg + wodim cdrkit-doc glibc-doc libstdc++-5-doc make-doc python-setuptools-doc + debootstrap bsd-mailx | mailx +The following NEW packages will be installed: + binutils bridge-utils build-essential cloud-image-utils cloud-utils cpp + cpp-5 cpu-checker distro-info dpkg-dev fakeroot g++ g++-5 gcc gcc-5 + genisoimage libaio1 libalgorithm-diff-perl libalgorithm-diff-xs-perl + libalgorithm-merge-perl libasan2 libatomic1 libboost-iostreams1.58.0 + libboost-random1.58.0 libboost-system1.58.0 libboost-thread1.58.0 + libc-dev-bin libc6-dev libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev + libfakeroot libfile-fcntllock-perl libgcc-5-dev libgomp1 libiscsi2 libisl15 + libitm1 liblsan0 libmpc3 libmpx0 libnspr4 libnss3 libnss3-nssdb + libpython3-dev libpython3.5-dev libquadmath0 librados2 librbd1 + libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make manpages-dev + msr-tools python-pip-whl python3-dev python3-pip python3-setuptools + python3-virtualenv python3-wheel python3.5-dev qemu-block-extra qemu-utils + sharutils ubuntu-fan virtualenv +0 upgraded, 69 newly installed, 0 to remove and 2 not upgraded. +Need to get 84.4 MB of archives. +After this operation, 226 MB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 libiscsi2 amd64 1.12.0-2 [51.5 kB] +Get:2 http://archive.ubuntu.com/ubuntu xenial/main amd64 libmpc3 amd64 1.0.3-1 [39.7 kB] +Get:3 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 binutils amd64 2.26.1-1ubuntu1~16.04.8 [2312 kB] +Get:4 http://archive.ubuntu.com/ubuntu xenial/main amd64 bridge-utils amd64 1.5-9ubuntu1 [28.6 kB] +Get:5 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libc-dev-bin amd64 2.23-0ubuntu11.3 [68.6 kB] +Get:6 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-libc-dev amd64 4.4.0-210.242 [832 kB] +Get:7 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libc6-dev amd64 2.23-0ubuntu11.3 [2083 kB] +Get:8 http://archive.ubuntu.com/ubuntu xenial/main amd64 libisl15 amd64 0.16.1-1 [524 kB] +Get:9 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cpp-5 amd64 5.4.0-6ubuntu1~16.04.12 [7783 kB] +Get:10 http://archive.ubuntu.com/ubuntu xenial/main amd64 cpp amd64 4:5.3.1-1ubuntu1 [27.7 kB] +Get:11 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcc1-0 amd64 5.4.0-6ubuntu1~16.04.12 [38.8 kB] +Get:12 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libgomp1 amd64 5.4.0-6ubuntu1~16.04.12 [55.2 kB] +Get:13 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libitm1 amd64 5.4.0-6ubuntu1~16.04.12 [27.4 kB] +Get:14 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libatomic1 amd64 5.4.0-6ubuntu1~16.04.12 [8892 B] +Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libasan2 amd64 5.4.0-6ubuntu1~16.04.12 [265 kB] +Get:16 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 liblsan0 amd64 5.4.0-6ubuntu1~16.04.12 [105 kB] +Get:17 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libtsan0 amd64 5.4.0-6ubuntu1~16.04.12 [244 kB] +Get:18 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libubsan0 amd64 5.4.0-6ubuntu1~16.04.12 [95.3 kB] +Get:19 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcilkrts5 amd64 5.4.0-6ubuntu1~16.04.12 [40.0 kB] +Get:20 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libmpx0 amd64 5.4.0-6ubuntu1~16.04.12 [9762 B] +Get:21 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libquadmath0 amd64 5.4.0-6ubuntu1~16.04.12 [131 kB] +Get:22 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libgcc-5-dev amd64 5.4.0-6ubuntu1~16.04.12 [2239 kB] +Get:23 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 gcc-5 amd64 5.4.0-6ubuntu1~16.04.12 [8612 kB] +Get:24 http://archive.ubuntu.com/ubuntu xenial/main amd64 gcc amd64 4:5.3.1-1ubuntu1 [5244 B] +Get:25 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libstdc++-5-dev amd64 5.4.0-6ubuntu1~16.04.12 [1428 kB] +Get:26 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 g++-5 amd64 5.4.0-6ubuntu1~16.04.12 [8430 kB] +Get:27 http://archive.ubuntu.com/ubuntu xenial/main amd64 g++ amd64 4:5.3.1-1ubuntu1 [1504 B] +Get:28 http://archive.ubuntu.com/ubuntu xenial/main amd64 make amd64 4.1-6 [151 kB] +Get:29 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libdpkg-perl all 1.18.4ubuntu1.7 [195 kB] +Get:30 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 dpkg-dev all 1.18.4ubuntu1.7 [584 kB] +Get:31 http://archive.ubuntu.com/ubuntu xenial/main amd64 build-essential amd64 12.1ubuntu2 [4758 B] +Get:32 http://archive.ubuntu.com/ubuntu xenial/main amd64 msr-tools amd64 1.3-2 [10.6 kB] +Get:33 http://archive.ubuntu.com/ubuntu xenial/main amd64 cpu-checker amd64 0.7-0ubuntu7 [6862 B] +Get:34 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 distro-info amd64 0.14ubuntu0.2 [20.1 kB] +Get:35 http://archive.ubuntu.com/ubuntu xenial/main amd64 libfakeroot amd64 1.20.2-1ubuntu1 [25.5 kB] +Get:36 http://archive.ubuntu.com/ubuntu xenial/main amd64 fakeroot amd64 1.20.2-1ubuntu1 [61.8 kB] +Get:37 http://archive.ubuntu.com/ubuntu xenial/main amd64 genisoimage amd64 9:1.1.11-3ubuntu1 [316 kB] +Get:38 http://archive.ubuntu.com/ubuntu xenial/main amd64 libaio1 amd64 0.3.110-2 [6356 B] +Get:39 http://archive.ubuntu.com/ubuntu xenial/main amd64 libalgorithm-diff-perl all 1.19.03-1 [47.6 kB] +Get:40 http://archive.ubuntu.com/ubuntu xenial/main amd64 libalgorithm-diff-xs-perl amd64 0.04-4build1 [11.0 kB] +Get:41 http://archive.ubuntu.com/ubuntu xenial/main amd64 libalgorithm-merge-perl all 0.08-3 [12.0 kB] +Get:42 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libboost-iostreams1.58.0 amd64 1.58.0+dfsg-5ubuntu3.1 [29.0 kB] +Get:43 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libboost-system1.58.0 amd64 1.58.0+dfsg-5ubuntu3.1 [9146 B] +Get:44 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libboost-random1.58.0 amd64 1.58.0+dfsg-5ubuntu3.1 [11.7 kB] +Get:45 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libboost-thread1.58.0 amd64 1.58.0+dfsg-5ubuntu3.1 [47.0 kB] +Get:46 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libexpat1-dev amd64 2.1.0-7ubuntu0.16.04.5 [115 kB] +Get:47 http://archive.ubuntu.com/ubuntu xenial/main amd64 libfile-fcntllock-perl amd64 0.22-3 [32.0 kB] +Get:48 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libnspr4 amd64 2:4.13.1-0ubuntu0.16.04.1 [112 kB] +Get:49 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libnss3-nssdb all 2:3.28.4-0ubuntu0.16.04.14 [10.6 kB] +Get:50 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libnss3 amd64 2:3.28.4-0ubuntu0.16.04.14 [1232 kB] +Get:51 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython3.5-dev amd64 3.5.2-2ubuntu0~16.04.13 [37.3 MB] +Get:52 http://archive.ubuntu.com/ubuntu xenial/main amd64 libpython3-dev amd64 3.5.1-3 [6926 B] +Get:53 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 librados2 amd64 10.2.11-0ubuntu0.16.04.3 [1651 kB] +Get:54 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 librbd1 amd64 10.2.11-0ubuntu0.16.04.3 [2198 kB] +Get:55 http://archive.ubuntu.com/ubuntu xenial/main amd64 manpages-dev all 4.04-2 [2048 kB] +Get:56 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 python-pip-whl all 8.1.1-2ubuntu0.6 [1112 kB] +Get:57 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3.5-dev amd64 3.5.2-2ubuntu0~16.04.13 [413 kB] +Get:58 http://archive.ubuntu.com/ubuntu xenial/main amd64 python3-dev amd64 3.5.1-3 [1186 B] +Get:59 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 python3-pip all 8.1.1-2ubuntu0.6 [109 kB] +Get:60 http://archive.ubuntu.com/ubuntu xenial/main amd64 python3-setuptools all 20.7.0-1 [88.0 kB] +Get:61 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 python3-virtualenv all 15.0.1+ds-3ubuntu1.1 [43.3 kB] +Get:62 http://archive.ubuntu.com/ubuntu xenial/universe amd64 python3-wheel all 0.29.0-1 [48.1 kB] +Get:63 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 qemu-block-extra amd64 1:2.5+dfsg-5ubuntu10.51 [32.4 kB] +Get:64 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 qemu-utils amd64 1:2.5+dfsg-5ubuntu10.51 [582 kB] +Get:65 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 sharutils amd64 1:4.15.2-1ubuntu0.1 [148 kB] +Get:66 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ubuntu-fan all 0.12.8~16.04.3 [35.1 kB] +Get:67 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 virtualenv all 15.0.1+ds-3ubuntu1.1 [4346 B] +Get:68 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cloud-image-utils all 0.27-0ubuntu25.2 [16.2 kB] +Get:69 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cloud-utils all 0.27-0ubuntu25.2 [1514 B] +dpkg-preconfigure: unable to re-open stdin: No such file or directory +Fetched 84.4 MB in 3s (21.2 MB/s) +Selecting previously unselected package libiscsi2:amd64. +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 25821 files and directories currently installed.) +Preparing to unpack .../libiscsi2_1.12.0-2_amd64.deb ... +Unpacking libiscsi2:amd64 (1.12.0-2) ... +Selecting previously unselected package libmpc3:amd64. +Preparing to unpack .../libmpc3_1.0.3-1_amd64.deb ... +Unpacking libmpc3:amd64 (1.0.3-1) ... +Selecting previously unselected package binutils. +Preparing to unpack .../binutils_2.26.1-1ubuntu1~16.04.8_amd64.deb ... +Unpacking binutils (2.26.1-1ubuntu1~16.04.8) ... +Selecting previously unselected package bridge-utils. +Preparing to unpack .../bridge-utils_1.5-9ubuntu1_amd64.deb ... +Unpacking bridge-utils (1.5-9ubuntu1) ... +Selecting previously unselected package libc-dev-bin. +Preparing to unpack .../libc-dev-bin_2.23-0ubuntu11.3_amd64.deb ... +Unpacking libc-dev-bin (2.23-0ubuntu11.3) ... +Selecting previously unselected package linux-libc-dev:amd64. +Preparing to unpack .../linux-libc-dev_4.4.0-210.242_amd64.deb ... +Unpacking linux-libc-dev:amd64 (4.4.0-210.242) ... +Selecting previously unselected package libc6-dev:amd64. +Preparing to unpack .../libc6-dev_2.23-0ubuntu11.3_amd64.deb ... +Unpacking libc6-dev:amd64 (2.23-0ubuntu11.3) ... +Selecting previously unselected package libisl15:amd64. +Preparing to unpack .../libisl15_0.16.1-1_amd64.deb ... +Unpacking libisl15:amd64 (0.16.1-1) ... +Selecting previously unselected package cpp-5. +Preparing to unpack .../cpp-5_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking cpp-5 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package cpp. +Preparing to unpack .../cpp_4%3a5.3.1-1ubuntu1_amd64.deb ... +Unpacking cpp (4:5.3.1-1ubuntu1) ... +Selecting previously unselected package libcc1-0:amd64. +Preparing to unpack .../libcc1-0_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libcc1-0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libgomp1:amd64. +Preparing to unpack .../libgomp1_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libgomp1:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libitm1:amd64. +Preparing to unpack .../libitm1_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libitm1:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libatomic1:amd64. +Preparing to unpack .../libatomic1_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libatomic1:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libasan2:amd64. +Preparing to unpack .../libasan2_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libasan2:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package liblsan0:amd64. +Preparing to unpack .../liblsan0_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking liblsan0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libtsan0:amd64. +Preparing to unpack .../libtsan0_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libtsan0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libubsan0:amd64. +Preparing to unpack .../libubsan0_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libubsan0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libcilkrts5:amd64. +Preparing to unpack .../libcilkrts5_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libcilkrts5:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libmpx0:amd64. +Preparing to unpack .../libmpx0_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libmpx0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libquadmath0:amd64. +Preparing to unpack .../libquadmath0_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libquadmath0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package libgcc-5-dev:amd64. +Preparing to unpack .../libgcc-5-dev_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libgcc-5-dev:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package gcc-5. +Preparing to unpack .../gcc-5_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking gcc-5 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package gcc. +Preparing to unpack .../gcc_4%3a5.3.1-1ubuntu1_amd64.deb ... +Unpacking gcc (4:5.3.1-1ubuntu1) ... +Selecting previously unselected package libstdc++-5-dev:amd64. +Preparing to unpack .../libstdc++-5-dev_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking libstdc++-5-dev:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package g++-5. +Preparing to unpack .../g++-5_5.4.0-6ubuntu1~16.04.12_amd64.deb ... +Unpacking g++-5 (5.4.0-6ubuntu1~16.04.12) ... +Selecting previously unselected package g++. +Preparing to unpack .../g++_4%3a5.3.1-1ubuntu1_amd64.deb ... +Unpacking g++ (4:5.3.1-1ubuntu1) ... +Selecting previously unselected package make. +Preparing to unpack .../archives/make_4.1-6_amd64.deb ... +Unpacking make (4.1-6) ... +Selecting previously unselected package libdpkg-perl. +Preparing to unpack .../libdpkg-perl_1.18.4ubuntu1.7_all.deb ... +Unpacking libdpkg-perl (1.18.4ubuntu1.7) ... +Selecting previously unselected package dpkg-dev. +Preparing to unpack .../dpkg-dev_1.18.4ubuntu1.7_all.deb ... +Unpacking dpkg-dev (1.18.4ubuntu1.7) ... +Selecting previously unselected package build-essential. +Preparing to unpack .../build-essential_12.1ubuntu2_amd64.deb ... +Unpacking build-essential (12.1ubuntu2) ... +Selecting previously unselected package msr-tools. +Preparing to unpack .../msr-tools_1.3-2_amd64.deb ... +Unpacking msr-tools (1.3-2) ... +Selecting previously unselected package cpu-checker. +Preparing to unpack .../cpu-checker_0.7-0ubuntu7_amd64.deb ... +Unpacking cpu-checker (0.7-0ubuntu7) ... +Selecting previously unselected package distro-info. +Preparing to unpack .../distro-info_0.14ubuntu0.2_amd64.deb ... +Unpacking distro-info (0.14ubuntu0.2) ... +Selecting previously unselected package libfakeroot:amd64. +Preparing to unpack .../libfakeroot_1.20.2-1ubuntu1_amd64.deb ... +Unpacking libfakeroot:amd64 (1.20.2-1ubuntu1) ... +Selecting previously unselected package fakeroot. +Preparing to unpack .../fakeroot_1.20.2-1ubuntu1_amd64.deb ... +Unpacking fakeroot (1.20.2-1ubuntu1) ... +Selecting previously unselected package genisoimage. +Preparing to unpack .../genisoimage_9%3a1.1.11-3ubuntu1_amd64.deb ... +Unpacking genisoimage (9:1.1.11-3ubuntu1) ... +Selecting previously unselected package libaio1:amd64. +Preparing to unpack .../libaio1_0.3.110-2_amd64.deb ... +Unpacking libaio1:amd64 (0.3.110-2) ... +Selecting previously unselected package libalgorithm-diff-perl. +Preparing to unpack .../libalgorithm-diff-perl_1.19.03-1_all.deb ... +Unpacking libalgorithm-diff-perl (1.19.03-1) ... +Selecting previously unselected package libalgorithm-diff-xs-perl. +Preparing to unpack .../libalgorithm-diff-xs-perl_0.04-4build1_amd64.deb ... +Unpacking libalgorithm-diff-xs-perl (0.04-4build1) ... +Selecting previously unselected package libalgorithm-merge-perl. +Preparing to unpack .../libalgorithm-merge-perl_0.08-3_all.deb ... +Unpacking libalgorithm-merge-perl (0.08-3) ... +Selecting previously unselected package libboost-iostreams1.58.0:amd64. +Preparing to unpack .../libboost-iostreams1.58.0_1.58.0+dfsg-5ubuntu3.1_amd64.deb ... +Unpacking libboost-iostreams1.58.0:amd64 (1.58.0+dfsg-5ubuntu3.1) ... +Selecting previously unselected package libboost-system1.58.0:amd64. +Preparing to unpack .../libboost-system1.58.0_1.58.0+dfsg-5ubuntu3.1_amd64.deb ... +Unpacking libboost-system1.58.0:amd64 (1.58.0+dfsg-5ubuntu3.1) ... +Selecting previously unselected package libboost-random1.58.0:amd64. +Preparing to unpack .../libboost-random1.58.0_1.58.0+dfsg-5ubuntu3.1_amd64.deb ... +Unpacking libboost-random1.58.0:amd64 (1.58.0+dfsg-5ubuntu3.1) ... +Selecting previously unselected package libboost-thread1.58.0:amd64. +Preparing to unpack .../libboost-thread1.58.0_1.58.0+dfsg-5ubuntu3.1_amd64.deb ... +Unpacking libboost-thread1.58.0:amd64 (1.58.0+dfsg-5ubuntu3.1) ... +Selecting previously unselected package libexpat1-dev:amd64. +Preparing to unpack .../libexpat1-dev_2.1.0-7ubuntu0.16.04.5_amd64.deb ... +Unpacking libexpat1-dev:amd64 (2.1.0-7ubuntu0.16.04.5) ... +Selecting previously unselected package libfile-fcntllock-perl. +Preparing to unpack .../libfile-fcntllock-perl_0.22-3_amd64.deb ... +Unpacking libfile-fcntllock-perl (0.22-3) ... +Selecting previously unselected package libnspr4:amd64. +Preparing to unpack .../libnspr4_2%3a4.13.1-0ubuntu0.16.04.1_amd64.deb ... +Unpacking libnspr4:amd64 (2:4.13.1-0ubuntu0.16.04.1) ... +Selecting previously unselected package libnss3-nssdb. +Preparing to unpack .../libnss3-nssdb_2%3a3.28.4-0ubuntu0.16.04.14_all.deb ... +Unpacking libnss3-nssdb (2:3.28.4-0ubuntu0.16.04.14) ... +Selecting previously unselected package libnss3:amd64. +Preparing to unpack .../libnss3_2%3a3.28.4-0ubuntu0.16.04.14_amd64.deb ... +Unpacking libnss3:amd64 (2:3.28.4-0ubuntu0.16.04.14) ... +Selecting previously unselected package libpython3.5-dev:amd64. +Preparing to unpack .../libpython3.5-dev_3.5.2-2ubuntu0~16.04.13_amd64.deb ... +Unpacking libpython3.5-dev:amd64 (3.5.2-2ubuntu0~16.04.13) ... +Selecting previously unselected package libpython3-dev:amd64. +Preparing to unpack .../libpython3-dev_3.5.1-3_amd64.deb ... +Unpacking libpython3-dev:amd64 (3.5.1-3) ... +Selecting previously unselected package librados2. +Preparing to unpack .../librados2_10.2.11-0ubuntu0.16.04.3_amd64.deb ... +Unpacking librados2 (10.2.11-0ubuntu0.16.04.3) ... +Selecting previously unselected package librbd1. +Preparing to unpack .../librbd1_10.2.11-0ubuntu0.16.04.3_amd64.deb ... +Unpacking librbd1 (10.2.11-0ubuntu0.16.04.3) ... +Selecting previously unselected package manpages-dev. +Preparing to unpack .../manpages-dev_4.04-2_all.deb ... +Unpacking manpages-dev (4.04-2) ... +Selecting previously unselected package python-pip-whl. +Preparing to unpack .../python-pip-whl_8.1.1-2ubuntu0.6_all.deb ... +Unpacking python-pip-whl (8.1.1-2ubuntu0.6) ... +Selecting previously unselected package python3.5-dev. +Preparing to unpack .../python3.5-dev_3.5.2-2ubuntu0~16.04.13_amd64.deb ... +Unpacking python3.5-dev (3.5.2-2ubuntu0~16.04.13) ... +Selecting previously unselected package python3-dev. +Preparing to unpack .../python3-dev_3.5.1-3_amd64.deb ... +Unpacking python3-dev (3.5.1-3) ... +Selecting previously unselected package python3-pip. +Preparing to unpack .../python3-pip_8.1.1-2ubuntu0.6_all.deb ... +Unpacking python3-pip (8.1.1-2ubuntu0.6) ... +Selecting previously unselected package python3-setuptools. +Preparing to unpack .../python3-setuptools_20.7.0-1_all.deb ... +Unpacking python3-setuptools (20.7.0-1) ... +Selecting previously unselected package python3-virtualenv. +Preparing to unpack .../python3-virtualenv_15.0.1+ds-3ubuntu1.1_all.deb ... +Unpacking python3-virtualenv (15.0.1+ds-3ubuntu1.1) ... +Selecting previously unselected package python3-wheel. +Preparing to unpack .../python3-wheel_0.29.0-1_all.deb ... +Unpacking python3-wheel (0.29.0-1) ... +Selecting previously unselected package qemu-block-extra:amd64. +Preparing to unpack .../qemu-block-extra_1%3a2.5+dfsg-5ubuntu10.51_amd64.deb ... +Unpacking qemu-block-extra:amd64 (1:2.5+dfsg-5ubuntu10.51) ... +Selecting previously unselected package qemu-utils. +Preparing to unpack .../qemu-utils_1%3a2.5+dfsg-5ubuntu10.51_amd64.deb ... +Unpacking qemu-utils (1:2.5+dfsg-5ubuntu10.51) ... +Selecting previously unselected package sharutils. +Preparing to unpack .../sharutils_1%3a4.15.2-1ubuntu0.1_amd64.deb ... +Unpacking sharutils (1:4.15.2-1ubuntu0.1) ... +Selecting previously unselected package ubuntu-fan. +Preparing to unpack .../ubuntu-fan_0.12.8~16.04.3_all.deb ... +Unpacking ubuntu-fan (0.12.8~16.04.3) ... +Selecting previously unselected package virtualenv. +Preparing to unpack .../virtualenv_15.0.1+ds-3ubuntu1.1_all.deb ... +Unpacking virtualenv (15.0.1+ds-3ubuntu1.1) ... +Selecting previously unselected package cloud-image-utils. +Preparing to unpack .../cloud-image-utils_0.27-0ubuntu25.2_all.deb ... +Unpacking cloud-image-utils (0.27-0ubuntu25.2) ... +Selecting previously unselected package cloud-utils. +Preparing to unpack .../cloud-utils_0.27-0ubuntu25.2_all.deb ... +Unpacking cloud-utils (0.27-0ubuntu25.2) ... +Processing triggers for libc-bin (2.23-0ubuntu11.3) ... +Processing triggers for man-db (2.7.5-1) ... +Processing triggers for install-info (6.1.0.dfsg.1-5) ... +Processing triggers for ureadahead (0.100.0-19.1) ... +Processing triggers for systemd (229-4ubuntu21.31) ... +Setting up libiscsi2:amd64 (1.12.0-2) ... +Setting up libmpc3:amd64 (1.0.3-1) ... +Setting up binutils (2.26.1-1ubuntu1~16.04.8) ... +Setting up bridge-utils (1.5-9ubuntu1) ... +Setting up libc-dev-bin (2.23-0ubuntu11.3) ... +Setting up linux-libc-dev:amd64 (4.4.0-210.242) ... +Setting up libc6-dev:amd64 (2.23-0ubuntu11.3) ... +Setting up libisl15:amd64 (0.16.1-1) ... +Setting up cpp-5 (5.4.0-6ubuntu1~16.04.12) ... +Setting up cpp (4:5.3.1-1ubuntu1) ... +Setting up libcc1-0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libgomp1:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libitm1:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libatomic1:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libasan2:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up liblsan0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libtsan0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libubsan0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libcilkrts5:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libmpx0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libquadmath0:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up libgcc-5-dev:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up gcc-5 (5.4.0-6ubuntu1~16.04.12) ... +Setting up gcc (4:5.3.1-1ubuntu1) ... +Setting up libstdc++-5-dev:amd64 (5.4.0-6ubuntu1~16.04.12) ... +Setting up g++-5 (5.4.0-6ubuntu1~16.04.12) ... +Setting up g++ (4:5.3.1-1ubuntu1) ... +update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode +Setting up make (4.1-6) ... +Setting up libdpkg-perl (1.18.4ubuntu1.7) ... +Setting up dpkg-dev (1.18.4ubuntu1.7) ... +Setting up build-essential (12.1ubuntu2) ... +Setting up msr-tools (1.3-2) ... +Setting up cpu-checker (0.7-0ubuntu7) ... +Setting up distro-info (0.14ubuntu0.2) ... +Setting up libfakeroot:amd64 (1.20.2-1ubuntu1) ... +Setting up fakeroot (1.20.2-1ubuntu1) ... +update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode +Setting up genisoimage (9:1.1.11-3ubuntu1) ... +Setting up libaio1:amd64 (0.3.110-2) ... +Setting up libalgorithm-diff-perl (1.19.03-1) ... +Setting up libalgorithm-diff-xs-perl (0.04-4build1) ... +Setting up libalgorithm-merge-perl (0.08-3) ... +Setting up libboost-iostreams1.58.0:amd64 (1.58.0+dfsg-5ubuntu3.1) ... +Setting up libboost-system1.58.0:amd64 (1.58.0+dfsg-5ubuntu3.1) ... +Setting up libboost-random1.58.0:amd64 (1.58.0+dfsg-5ubuntu3.1) ... +Setting up libboost-thread1.58.0:amd64 (1.58.0+dfsg-5ubuntu3.1) ... +Setting up libexpat1-dev:amd64 (2.1.0-7ubuntu0.16.04.5) ... +Setting up libfile-fcntllock-perl (0.22-3) ... +Setting up libnspr4:amd64 (2:4.13.1-0ubuntu0.16.04.1) ... +Setting up libpython3.5-dev:amd64 (3.5.2-2ubuntu0~16.04.13) ... +Setting up libpython3-dev:amd64 (3.5.1-3) ... +Setting up manpages-dev (4.04-2) ... +Setting up python-pip-whl (8.1.1-2ubuntu0.6) ... +Setting up python3.5-dev (3.5.2-2ubuntu0~16.04.13) ... +Setting up python3-dev (3.5.1-3) ... +Setting up python3-pip (8.1.1-2ubuntu0.6) ... +Setting up python3-setuptools (20.7.0-1) ... +Setting up python3-virtualenv (15.0.1+ds-3ubuntu1.1) ... +Setting up python3-wheel (0.29.0-1) ... +Setting up sharutils (1:4.15.2-1ubuntu0.1) ... +Setting up ubuntu-fan (0.12.8~16.04.3) ... +Setting up virtualenv (15.0.1+ds-3ubuntu1.1) ... +Setting up libnss3-nssdb (2:3.28.4-0ubuntu0.16.04.14) ... +Setting up libnss3:amd64 (2:3.28.4-0ubuntu0.16.04.14) ... +Setting up librados2 (10.2.11-0ubuntu0.16.04.3) ... +Setting up librbd1 (10.2.11-0ubuntu0.16.04.3) ... +Setting up qemu-block-extra:amd64 (1:2.5+dfsg-5ubuntu10.51) ... +Setting up qemu-utils (1:2.5+dfsg-5ubuntu10.51) ... +Setting up cloud-image-utils (0.27-0ubuntu25.2) ... +Setting up cloud-utils (0.27-0ubuntu25.2) ... +Processing triggers for libc-bin (2.23-0ubuntu11.3) ... +Processing triggers for ureadahead (0.100.0-19.1) ... +Processing triggers for systemd (229-4ubuntu21.31) ... ++ echo 'Installing Juju agent 2.9.12-ubuntu-amd64' +Installing Juju agent 2.9.12-ubuntu-amd64 ++ lxc exec juju-xenial-base -- mkdir -p /var/lib/juju/tools/2.9.12-ubuntu-amd64/ ++ lxc exec juju-xenial-base -- curl -sS --connect-timeout 20 --noproxy '*' --insecure -o /var/lib/juju/tools/2.9.12-ubuntu-amd64/tools.tar.gz https://streams.canonical.com/juju/tools/agent/2.9.12/juju-2.9.12-ubuntu-amd64.tgz ++ lxc exec juju-xenial-base -- tar zxf /var/lib/juju/tools/2.9.12-ubuntu-amd64/tools.tar.gz -C /var/lib/juju/tools/2.9.12-ubuntu-amd64 ++ lxc stop juju-xenial-base ++ lxc image delete juju/xenial/amd64 +Error: not found ++ true ++ lxc image delete clean-xenial +++ date +%Y%m%d ++ lxc publish juju-xenial-base --alias juju/xenial/amd64 'description=xenial juju dev image (20210906)' + Publishing instance: Image pack: 1% (6.79MB/s) Publishing instance: Image pack: 2% (5.64MB/s) Publishing instance: Image pack: 3% (6.19MB/s) Publishing instance: Image pack: 4% (7.10MB/s) Publishing instance: Image pack: 5% (7.01MB/s) Publishing instance: Image pack: 6% (6.88MB/s) Publishing instance: Image pack: 7% (7.05MB/s) Publishing instance: Image pack: 8% (7.30MB/s) Publishing instance: Image pack: 9% (7.27MB/s) Publishing instance: Image pack: 10% (7.49MB/s) Publishing instance: Image pack: 10% (7.79MB/s) Publishing instance: Image pack: 11% (8.02MB/s) Publishing instance: Image pack: 12% (8.28MB/s) Publishing instance: Image pack: 13% (8.50MB/s) Publishing instance: Image pack: 14% (8.50MB/s) Publishing instance: Image pack: 15% (8.45MB/s) Publishing instance: Image pack: 16% (8.26MB/s) Publishing instance: Image pack: 17% (8.28MB/s) Publishing instance: Image pack: 18% (8.41MB/s) Publishing instance: Image pack: 19% (8.48MB/s) Publishing instance: Image pack: 19% (8.65MB/s) Publishing instance: Image pack: 20% (8.81MB/s) Publishing instance: Image pack: 21% (8.72MB/s) Publishing instance: Image pack: 22% (8.72MB/s) Publishing instance: Image pack: 23% (8.79MB/s) Publishing instance: Image pack: 24% (8.76MB/s) Publishing instance: Image pack: 25% (8.81MB/s) Publishing instance: Image pack: 26% (8.76MB/s) Publishing instance: Image pack: 27% (8.80MB/s) Publishing instance: Image pack: 28% (8.89MB/s) Publishing instance: Image pack: 28% (9.01MB/s) Publishing instance: Image pack: 29% (9.12MB/s) Publishing instance: Image pack: 30% (9.26MB/s) Publishing instance: Image pack: 31% (9.36MB/s) Publishing instance: Image pack: 32% (9.30MB/s) Publishing instance: Image pack: 33% (9.28MB/s) Publishing instance: Image pack: 34% (9.20MB/s) Publishing instance: Image pack: 35% (9.20MB/s) Publishing instance: Image pack: 36% (9.18MB/s) Publishing instance: Image pack: 37% (9.08MB/s) Publishing instance: Image pack: 37% (8.94MB/s) Publishing instance: Image pack: 38% (8.97MB/s) Publishing instance: Image pack: 39% (8.88MB/s) Publishing instance: Image pack: 40% (8.85MB/s) Publishing instance: Image pack: 41% (8.75MB/s) Publishing instance: Image pack: 42% (8.74MB/s) Publishing instance: Image pack: 43% (8.71MB/s) Publishing instance: Image pack: 44% (8.70MB/s) Publishing instance: Image pack: 45% (8.71MB/s) Publishing instance: Image pack: 46% (8.62MB/s) Publishing instance: Image pack: 46% (8.62MB/s) Publishing instance: Image pack: 47% (8.65MB/s) Publishing instance: Image pack: 48% (8.69MB/s) Publishing instance: Image pack: 49% (8.69MB/s) Publishing instance: Image pack: 50% (8.73MB/s) Publishing instance: Image pack: 51% (8.71MB/s) Publishing instance: Image pack: 52% (8.70MB/s) Publishing instance: Image pack: 53% (8.69MB/s) Publishing instance: Image pack: 54% (8.73MB/s) Publishing instance: Image pack: 55% (8.74MB/s) Publishing instance: Image pack: 55% (8.74MB/s) Publishing instance: Image pack: 56% (8.61MB/s) Publishing instance: Image pack: 57% (8.53MB/s) Publishing instance: Image pack: 58% (8.56MB/s) Publishing instance: Image pack: 59% (8.41MB/s) Publishing instance: Image pack: 60% (8.38MB/s) Publishing instance: Image pack: 61% (8.32MB/s) Publishing instance: Image pack: 62% (8.27MB/s) Publishing instance: Image pack: 63% (8.33MB/s) Publishing instance: Image pack: 64% (8.40MB/s) Publishing instance: Image pack: 64% (8.28MB/s) Publishing instance: Image pack: 65% (8.34MB/s) Publishing instance: Image pack: 66% (8.34MB/s) Publishing instance: Image pack: 67% (8.39MB/s) Publishing instance: Image pack: 68% (8.45MB/s) Publishing instance: Image pack: 69% (8.50MB/s) Publishing instance: Image pack: 70% (8.53MB/s) Publishing instance: Image pack: 71% (8.53MB/s) Publishing instance: Image pack: 72% (8.50MB/s) Publishing instance: Image pack: 73% (8.48MB/s) Publishing instance: Image pack: 73% (8.45MB/s) Publishing instance: Image pack: 74% (8.47MB/s) Publishing instance: Image pack: 75% (8.51MB/s) Publishing instance: Image pack: 76% (8.55MB/s) Publishing instance: Image pack: 77% (8.58MB/s) Publishing instance: Image pack: 78% (8.60MB/s) Publishing instance: Image pack: 79% (8.65MB/s) Publishing instance: Image pack: 80% (8.68MB/s) Publishing instance: Image pack: 81% (8.72MB/s) Publishing instance: Image pack: 82% (8.76MB/s) Publishing instance: Image pack: 83% (8.80MB/s) Publishing instance: Image pack: 83% (8.83MB/s) Publishing instance: Image pack: 84% (8.90MB/s) Publishing instance: Image pack: 85% (8.90MB/s) Publishing instance: Image pack: 86% (8.81MB/s) Publishing instance: Image pack: 87% (8.81MB/s) Publishing instance: Image pack: 88% (8.79MB/s) Publishing instance: Image pack: 89% (8.72MB/s) Publishing instance: Image pack: 90% (8.72MB/s) Publishing instance: Image pack: 91% (8.73MB/s) Publishing instance: Image pack: 92% (8.76MB/s) Publishing instance: Image pack: 92% (8.79MB/s) Publishing instance: Image pack: 93% (8.82MB/s) Publishing instance: Image pack: 94% (8.82MB/s) Publishing instance: Image pack: 95% (8.85MB/s) Publishing instance: Image pack: 96% (8.89MB/s) Publishing instance: Image pack: 97% (8.94MB/s) Publishing instance: Image pack: 98% (8.99MB/s) Publishing instance: Image pack: 99% (9.03MB/s) Publishing instance: Image pack: 100% (9.08MB/s) Publishing instance: Image pack: 100% (9.09MB/s) Publishing instance: Image pack: 100% (9.12MB/s) Instance published with fingerprint: 1334ad5edfa49e859139c81a52759c76b428215f46f864992a6cdaa4261d2930 ++ lxc delete juju-xenial-base -f ++ '[' 1 == 1 ']' ++ cache bionic virtualenv ++ series=bionic ++ container=juju-bionic-base ++ alias=juju/bionic/amd64 ++ lxc delete juju-bionic-base -f +Error: not found ++ true ++ lxc image copy ubuntu:bionic local: --alias clean-bionic + Copying the image: metadata: 100% (2.25GB/s) Copying the image: rootfs: 1% (2.54MB/s) Copying the image: rootfs: 2% (4.46MB/s) Copying the image: rootfs: 3% (6.25MB/s) Copying the image: rootfs: 4% (7.74MB/s) Copying the image: rootfs: 5% (9.17MB/s) Copying the image: rootfs: 6% (10.28MB/s) Copying the image: rootfs: 7% (11.11MB/s) Copying the image: rootfs: 8% (12.33MB/s) Copying the image: rootfs: 9% (12.97MB/s) Copying the image: rootfs: 10% (13.97MB/s) Copying the image: rootfs: 10% (14.51MB/s) Copying the image: rootfs: 11% (15.13MB/s) Copying the image: rootfs: 12% (15.22MB/s) Copying the image: rootfs: 13% (16.07MB/s) Copying the image: rootfs: 14% (16.16MB/s) Copying the image: rootfs: 15% (17.05MB/s) Copying the image: rootfs: 16% (17.16MB/s) Copying the image: rootfs: 17% (17.35MB/s) Copying the image: rootfs: 18% (17.86MB/s) Copying the image: rootfs: 19% (17.91MB/s) Copying the image: rootfs: 20% (18.14MB/s) Copying the image: rootfs: 20% (18.09MB/s) Copying the image: rootfs: 21% (18.63MB/s) Copying the image: rootfs: 22% (18.64MB/s) Copying the image: rootfs: 23% (18.62MB/s) Copying the image: rootfs: 24% (18.76MB/s) Copying the image: rootfs: 25% (18.83MB/s) Copying the image: rootfs: 26% (19.33MB/s) Copying the image: rootfs: 27% (19.34MB/s) Copying the image: rootfs: 28% (19.75MB/s) Copying the image: rootfs: 29% (19.74MB/s) Copying the image: rootfs: 30% (20.03MB/s) Copying the image: rootfs: 30% (20.11MB/s) Copying the image: rootfs: 31% (19.03MB/s) Copying the image: rootfs: 32% (19.25MB/s) Copying the image: rootfs: 33% (19.45MB/s) Copying the image: rootfs: 34% (19.43MB/s) Copying the image: rootfs: 35% (19.69MB/s) Copying the image: rootfs: 36% (19.76MB/s) Copying the image: rootfs: 37% (19.87MB/s) Copying the image: rootfs: 38% (20.00MB/s) Copying the image: rootfs: 39% (20.13MB/s) Copying the image: rootfs: 40% (20.14MB/s) Copying the image: rootfs: 40% (20.22MB/s) Copying the image: rootfs: 41% (20.45MB/s) Copying the image: rootfs: 42% (20.47MB/s) Copying the image: rootfs: 43% (20.66MB/s) Copying the image: rootfs: 44% (20.72MB/s) Copying the image: rootfs: 45% (20.79MB/s) Copying the image: rootfs: 46% (20.96MB/s) Copying the image: rootfs: 47% (21.03MB/s) Copying the image: rootfs: 48% (21.05MB/s) Copying the image: rootfs: 49% (21.26MB/s) Copying the image: rootfs: 50% (21.31MB/s) Copying the image: rootfs: 50% (21.38MB/s) Copying the image: rootfs: 51% (21.52MB/s) Copying the image: rootfs: 52% (21.58MB/s) Copying the image: rootfs: 53% (21.63MB/s) Copying the image: rootfs: 54% (21.76MB/s) Copying the image: rootfs: 55% (21.82MB/s) Copying the image: rootfs: 56% (21.96MB/s) Copying the image: rootfs: 57% (22.00MB/s) Copying the image: rootfs: 58% (22.04MB/s) Copying the image: rootfs: 59% (22.17MB/s) Copying the image: rootfs: 59% (22.21MB/s) Copying the image: rootfs: 60% (22.22MB/s) Copying the image: rootfs: 61% (22.34MB/s) Copying the image: rootfs: 62% (22.35MB/s) Copying the image: rootfs: 63% (22.51MB/s) Copying the image: rootfs: 64% (22.50MB/s) Copying the image: rootfs: 65% (22.53MB/s) Copying the image: rootfs: 66% (22.64MB/s) Copying the image: rootfs: 67% (22.65MB/s) Copying the image: rootfs: 68% (22.68MB/s) Copying the image: rootfs: 69% (22.81MB/s) Copying the image: rootfs: 69% (22.84MB/s) Copying the image: rootfs: 70% (22.94MB/s) Copying the image: rootfs: 71% (22.94MB/s) Copying the image: rootfs: 72% (22.96MB/s) Copying the image: rootfs: 73% (23.09MB/s) Copying the image: rootfs: 74% (23.09MB/s) Copying the image: rootfs: 75% (23.11MB/s) Copying the image: rootfs: 76% (23.21MB/s) Copying the image: rootfs: 77% (23.22MB/s) Copying the image: rootfs: 78% (23.30MB/s) Copying the image: rootfs: 79% (23.35MB/s) Copying the image: rootfs: 80% (23.46MB/s) Copying the image: rootfs: 81% (23.46MB/s) Copying the image: rootfs: 82% (23.43MB/s) Copying the image: rootfs: 83% (23.54MB/s) Copying the image: rootfs: 84% (23.55MB/s) Copying the image: rootfs: 85% (23.55MB/s) Copying the image: rootfs: 86% (23.65MB/s) Copying the image: rootfs: 87% (23.65MB/s) Copying the image: rootfs: 88% (23.70MB/s) Copying the image: rootfs: 88% (23.74MB/s) Copying the image: rootfs: 89% (23.76MB/s) Copying the image: rootfs: 90% (23.82MB/s) Copying the image: rootfs: 91% (23.83MB/s) Copying the image: rootfs: 92% (23.91MB/s) Copying the image: rootfs: 93% (23.90MB/s) Copying the image: rootfs: 94% (23.96MB/s) Copying the image: rootfs: 95% (23.98MB/s) Copying the image: rootfs: 96% (24.01MB/s) Copying the image: rootfs: 97% (24.05MB/s) Copying the image: rootfs: 98% (23.83MB/s) Copying the image: rootfs: 98% (23.98MB/s) Copying the image: rootfs: 99% (23.94MB/s) Copying the image: rootfs: 100% (24.03MB/s) Image copied successfully! ++ lxc launch ubuntu:bionic juju-bionic-base +Creating juju-bionic-base + Retrieving image: Unpack: 100% (3.70GB/s) Retrieving image: Unpack: 100% (3.70GB/s) Starting juju-bionic-base + Remapping container filesystem + sleep 15 ++ lxc exec juju-bionic-base -- apt-get update -y +Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease +Get:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB] +Get:3 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB] +Get:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB] +Get:5 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [8570 kB] +Get:6 http://archive.ubuntu.com/ubuntu bionic/universe Translation-en [4941 kB] +Get:7 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [151 kB] +Get:8 http://archive.ubuntu.com/ubuntu bionic/multiverse Translation-en [108 kB] +Get:9 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [2192 kB] +Get:10 http://archive.ubuntu.com/ubuntu bionic-updates/main Translation-en [430 kB] +Get:11 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1748 kB] +Get:12 http://archive.ubuntu.com/ubuntu bionic-updates/universe Translation-en [375 kB] +Get:13 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [27.3 kB] +Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse Translation-en [6808 B] +Get:15 http://archive.ubuntu.com/ubuntu bionic-backports/main amd64 Packages [10.0 kB] +Get:16 http://archive.ubuntu.com/ubuntu bionic-backports/main Translation-en [4764 B] +Get:17 http://archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages [10.3 kB] +Get:18 http://archive.ubuntu.com/ubuntu bionic-backports/universe Translation-en [4588 B] +Get:19 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [1846 kB] +Get:20 http://security.ubuntu.com/ubuntu bionic-security/main Translation-en [338 kB] +Get:21 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [1137 kB] +Get:22 http://security.ubuntu.com/ubuntu bionic-security/universe Translation-en [259 kB] +Get:23 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [20.9 kB] +Get:24 http://security.ubuntu.com/ubuntu bionic-security/multiverse Translation-en [4732 B] +Fetched 22.4 MB in 18s (1227 kB/s) +Reading package lists... ++ lxc exec juju-bionic-base -- apt-get upgrade -y +Reading package lists... +Building dependency tree... +Reading state information... +Calculating upgrade... +The following package was automatically installed and is no longer required: + libfreetype6 +Use 'apt autoremove' to remove it. +The following packages will be upgraded: + libntfs-3g88 libssl1.0.0 ntfs-3g squashfs-tools +4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. +4 standard security updates +Need to get 1732 kB of archives. +After this operation, 6144 B of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 ntfs-3g amd64 1:2017.3.23-2ubuntu0.18.04.3 [385 kB] +Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libntfs-3g88 amd64 1:2017.3.23-2ubuntu0.18.04.3 [148 kB] +Get:3 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libssl1.0.0 amd64 1.0.2n-1ubuntu5.7 [1089 kB] +Get:4 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 squashfs-tools amd64 1:4.3-6ubuntu0.18.04.3 [111 kB] +dpkg-preconfigure: unable to re-open stdin: No such file or directory +Fetched 1732 kB in 0s (4927 kB/s) +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 28944 files and directories currently installed.) +Preparing to unpack .../ntfs-3g_1%3a2017.3.23-2ubuntu0.18.04.3_amd64.deb ... +Unpacking ntfs-3g (1:2017.3.23-2ubuntu0.18.04.3) over (1:2017.3.23-2ubuntu0.18.04.2) ... +Preparing to unpack .../libntfs-3g88_1%3a2017.3.23-2ubuntu0.18.04.3_amd64.deb ... +Unpacking libntfs-3g88 (1:2017.3.23-2ubuntu0.18.04.3) over (1:2017.3.23-2ubuntu0.18.04.2) ... +Preparing to unpack .../libssl1.0.0_1.0.2n-1ubuntu5.7_amd64.deb ... +Unpacking libssl1.0.0:amd64 (1.0.2n-1ubuntu5.7) over (1.0.2n-1ubuntu5.6) ... +Preparing to unpack .../squashfs-tools_1%3a4.3-6ubuntu0.18.04.3_amd64.deb ... +Unpacking squashfs-tools (1:4.3-6ubuntu0.18.04.3) over (1:4.3-6ubuntu0.18.04.2) ... +Setting up libssl1.0.0:amd64 (1.0.2n-1ubuntu5.7) ... +Setting up squashfs-tools (1:4.3-6ubuntu0.18.04.3) ... +Setting up libntfs-3g88 (1:2017.3.23-2ubuntu0.18.04.3) ... +Setting up ntfs-3g (1:2017.3.23-2ubuntu0.18.04.3) ... +Processing triggers for initramfs-tools (0.130ubuntu3.13) ... +Processing triggers for libc-bin (2.27-3ubuntu1.4) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... ++ lxc exec juju-bionic-base -- apt-get install -y curl cpu-checker bridge-utils cloud-utils tmux ubuntu-fan gcc build-essential python3-pip python3-setuptools python3-yaml virtualenv +Reading package lists... +Building dependency tree... +Reading state information... +python3-yaml is already the newest version (3.12-1build2). +python3-yaml set to manually installed. +curl is already the newest version (7.58.0-2ubuntu3.14). +curl set to manually installed. +tmux is already the newest version (2.6-3ubuntu0.2). +tmux set to manually installed. +The following package was automatically installed and is no longer required: + libfreetype6 +Use 'apt autoremove' to remove it. +The following additional packages will be installed: + binutils binutils-common binutils-x86-64-linux-gnu cloud-image-utils cpp + cpp-7 dh-python dpkg-dev fakeroot g++ g++-7 gcc-7 gcc-7-base genisoimage + ibverbs-providers libaio1 libalgorithm-diff-perl libalgorithm-diff-xs-perl + libalgorithm-merge-perl libasan4 libatomic1 libbinutils libc-dev-bin + libc6-dev libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot + libfile-fcntllock-perl libgcc-7-dev libgomp1 libibverbs1 libiscsi7 libisl19 + libitm1 liblsan0 libmpc3 libmpx2 libnl-3-200 libnl-route-3-200 libnspr4 + libnss3 libpython3-dev libpython3.6-dev libquadmath0 librados2 librbd1 + libstdc++-7-dev libtsan0 libubsan0 linux-libc-dev make manpages-dev + msr-tools python-pip-whl python3-crypto python3-dev python3-distutils + python3-keyring python3-keyrings.alt python3-lib2to3 python3-secretstorage + python3-virtualenv python3-wheel python3-xdg python3.6-dev qemu-block-extra + qemu-utils sharutils +Suggested packages: + binutils-doc ifupdown cloud-utils-euca mtools cpp-doc gcc-7-locales + debian-keyring g++-multilib g++-7-multilib gcc-7-doc libstdc++6-7-dbg + gcc-multilib autoconf automake libtool flex bison gdb gcc-doc gcc-7-multilib + libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan4-dbg + liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx2-dbg + libquadmath0-dbg wodim cdrkit-doc glibc-doc bzr libstdc++-7-doc make-doc + python-crypto-doc gnome-keyring libkf5wallet-bin gir1.2-gnomekeyring-1.0 + python-secretstorage-doc python-setuptools-doc debootstrap sharutils-doc + bsd-mailx | mailx +The following NEW packages will be installed: + binutils binutils-common binutils-x86-64-linux-gnu bridge-utils + build-essential cloud-image-utils cloud-utils cpp cpp-7 cpu-checker + dh-python dpkg-dev fakeroot g++ g++-7 gcc gcc-7 gcc-7-base genisoimage + ibverbs-providers libaio1 libalgorithm-diff-perl libalgorithm-diff-xs-perl + libalgorithm-merge-perl libasan4 libatomic1 libbinutils libc-dev-bin + libc6-dev libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot + libfile-fcntllock-perl libgcc-7-dev libgomp1 libibverbs1 libiscsi7 libisl19 + libitm1 liblsan0 libmpc3 libmpx2 libnl-3-200 libnl-route-3-200 libnspr4 + libnss3 libpython3-dev libpython3.6-dev libquadmath0 librados2 librbd1 + libstdc++-7-dev libtsan0 libubsan0 linux-libc-dev make manpages-dev + msr-tools python-pip-whl python3-crypto python3-dev python3-distutils + python3-keyring python3-keyrings.alt python3-lib2to3 python3-pip + python3-secretstorage python3-setuptools python3-virtualenv python3-wheel + python3-xdg python3.6-dev qemu-block-extra qemu-utils sharutils ubuntu-fan + virtualenv +0 upgraded, 79 newly installed, 0 to remove and 0 not upgraded. +Need to get 98.2 MB of archives. +After this operation, 283 MB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils-common amd64 2.30-21ubuntu1~18.04.5 [197 kB] +Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libbinutils amd64 2.30-21ubuntu1~18.04.5 [489 kB] +Get:3 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.30-21ubuntu1~18.04.5 [1839 kB] +Get:4 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils amd64 2.30-21ubuntu1~18.04.5 [3388 B] +Get:5 http://archive.ubuntu.com/ubuntu bionic/main amd64 bridge-utils amd64 1.5-15ubuntu1 [30.1 kB] +Get:6 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libc-dev-bin amd64 2.27-3ubuntu1.4 [71.8 kB] +Get:7 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 linux-libc-dev amd64 4.15.0-154.161 [988 kB] +Get:8 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libc6-dev amd64 2.27-3ubuntu1.4 [2585 kB] +Get:9 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc-7-base amd64 7.5.0-3ubuntu1~18.04 [18.3 kB] +Get:10 http://archive.ubuntu.com/ubuntu bionic/main amd64 libisl19 amd64 0.19-1 [551 kB] +Get:11 http://archive.ubuntu.com/ubuntu bionic/main amd64 libmpc3 amd64 1.1.0-1 [40.8 kB] +Get:12 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 cpp-7 amd64 7.5.0-3ubuntu1~18.04 [8591 kB] +Get:13 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 cpp amd64 4:7.4.0-1ubuntu2.3 [27.7 kB] +Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libcc1-0 amd64 8.4.0-1ubuntu1~18.04 [39.4 kB] +Get:15 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgomp1 amd64 8.4.0-1ubuntu1~18.04 [76.5 kB] +Get:16 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libitm1 amd64 8.4.0-1ubuntu1~18.04 [27.9 kB] +Get:17 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libatomic1 amd64 8.4.0-1ubuntu1~18.04 [9192 B] +Get:18 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libasan4 amd64 7.5.0-3ubuntu1~18.04 [358 kB] +Get:19 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 liblsan0 amd64 8.4.0-1ubuntu1~18.04 [133 kB] +Get:20 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libtsan0 amd64 8.4.0-1ubuntu1~18.04 [288 kB] +Get:21 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libubsan0 amd64 7.5.0-3ubuntu1~18.04 [126 kB] +Get:22 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libcilkrts5 amd64 7.5.0-3ubuntu1~18.04 [42.5 kB] +Get:23 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libmpx2 amd64 8.4.0-1ubuntu1~18.04 [11.6 kB] +Get:24 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libquadmath0 amd64 8.4.0-1ubuntu1~18.04 [134 kB] +Get:25 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgcc-7-dev amd64 7.5.0-3ubuntu1~18.04 [2378 kB] +Get:26 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc-7 amd64 7.5.0-3ubuntu1~18.04 [9381 kB] +Get:27 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc amd64 4:7.4.0-1ubuntu2.3 [5184 B] +Get:28 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libstdc++-7-dev amd64 7.5.0-3ubuntu1~18.04 [1471 kB] +Get:29 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 g++-7 amd64 7.5.0-3ubuntu1~18.04 [9697 kB] +Get:30 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 g++ amd64 4:7.4.0-1ubuntu2.3 [1568 B] +Get:31 http://archive.ubuntu.com/ubuntu bionic/main amd64 make amd64 4.1-9.1ubuntu1 [154 kB] +Get:32 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libdpkg-perl all 1.19.0.5ubuntu2.3 [211 kB] +Get:33 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 dpkg-dev all 1.19.0.5ubuntu2.3 [607 kB] +Get:34 http://archive.ubuntu.com/ubuntu bionic/main amd64 build-essential amd64 12.4ubuntu1 [4758 B] +Get:35 http://archive.ubuntu.com/ubuntu bionic/main amd64 msr-tools amd64 1.3-2build1 [9760 B] +Get:36 http://archive.ubuntu.com/ubuntu bionic/main amd64 cpu-checker amd64 0.7-0ubuntu7 [6862 B] +Get:37 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-lib2to3 all 3.6.9-1~18.04 [77.4 kB] +Get:38 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-distutils all 3.6.9-1~18.04 [144 kB] +Get:39 http://archive.ubuntu.com/ubuntu bionic/main amd64 dh-python all 3.20180325ubuntu2 [89.2 kB] +Get:40 http://archive.ubuntu.com/ubuntu bionic/main amd64 libfakeroot amd64 1.22-2ubuntu1 [25.9 kB] +Get:41 http://archive.ubuntu.com/ubuntu bionic/main amd64 fakeroot amd64 1.22-2ubuntu1 [62.3 kB] +Get:42 http://archive.ubuntu.com/ubuntu bionic/main amd64 genisoimage amd64 9:1.1.11-3ubuntu2 [328 kB] +Get:43 http://archive.ubuntu.com/ubuntu bionic/main amd64 libnl-3-200 amd64 3.2.29-0ubuntu3 [52.8 kB] +Get:44 http://archive.ubuntu.com/ubuntu bionic/main amd64 libnl-route-3-200 amd64 3.2.29-0ubuntu3 [146 kB] +Get:45 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libibverbs1 amd64 17.1-1ubuntu0.2 [44.4 kB] +Get:46 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 ibverbs-providers amd64 17.1-1ubuntu0.2 [160 kB] +Get:47 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libaio1 amd64 0.3.110-5ubuntu0.1 [6476 B] +Get:48 http://archive.ubuntu.com/ubuntu bionic/main amd64 libalgorithm-diff-perl all 1.19.03-1 [47.6 kB] +Get:49 http://archive.ubuntu.com/ubuntu bionic/main amd64 libalgorithm-diff-xs-perl amd64 0.04-5 [11.1 kB] +Get:50 http://archive.ubuntu.com/ubuntu bionic/main amd64 libalgorithm-merge-perl all 0.08-3 [12.0 kB] +Get:51 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libexpat1-dev amd64 2.2.5-3ubuntu0.2 [122 kB] +Get:52 http://archive.ubuntu.com/ubuntu bionic/main amd64 libfile-fcntllock-perl amd64 0.22-3build2 [33.2 kB] +Get:53 http://archive.ubuntu.com/ubuntu bionic/main amd64 libiscsi7 amd64 1.17.0-1.1 [55.4 kB] +Get:54 http://archive.ubuntu.com/ubuntu bionic/main amd64 libnspr4 amd64 2:4.18-1ubuntu1 [112 kB] +Get:55 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libnss3 amd64 2:3.35-2ubuntu2.12 [1220 kB] +Get:56 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libpython3.6-dev amd64 3.6.9-1~18.04ubuntu1.4 [44.9 MB] +Get:57 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libpython3-dev amd64 3.6.7-1~18.04 [7328 B] +Get:58 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 librados2 amd64 12.2.13-0ubuntu0.18.04.8 [2724 kB] +Get:59 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 librbd1 amd64 12.2.13-0ubuntu0.18.04.8 [923 kB] +Get:60 http://archive.ubuntu.com/ubuntu bionic/main amd64 manpages-dev all 4.15-1 [2217 kB] +Get:61 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 python-pip-whl all 9.0.1-2.3~ubuntu1.18.04.5 [1653 kB] +Get:62 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-crypto amd64 2.6.1-8ubuntu2 [244 kB] +Get:63 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3.6-dev amd64 3.6.9-1~18.04ubuntu1.4 [508 kB] +Get:64 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-dev amd64 3.6.7-1~18.04 [1288 B] +Get:65 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-secretstorage all 2.3.1-2 [12.1 kB] +Get:66 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-keyring all 10.6.0-1 [26.7 kB] +Get:67 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-keyrings.alt all 3.0-1 [16.6 kB] +Get:68 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 python3-pip all 9.0.1-2.3~ubuntu1.18.04.5 [114 kB] +Get:69 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-setuptools all 39.0.1-2 [248 kB] +Get:70 http://archive.ubuntu.com/ubuntu bionic/universe amd64 python3-virtualenv all 15.1.0+ds-1.1 [43.4 kB] +Get:71 http://archive.ubuntu.com/ubuntu bionic/universe amd64 python3-wheel all 0.30.0-0.2 [36.5 kB] +Get:72 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-xdg all 0.25-4ubuntu1.1 [31.3 kB] +Get:73 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 qemu-block-extra amd64 1:2.11+dfsg-1ubuntu7.37 [41.4 kB] +Get:74 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 qemu-utils amd64 1:2.11+dfsg-1ubuntu7.37 [869 kB] +Get:75 http://archive.ubuntu.com/ubuntu bionic/main amd64 sharutils amd64 1:4.15.2-3 [155 kB] +Get:76 http://archive.ubuntu.com/ubuntu bionic/main amd64 ubuntu-fan all 0.12.10 [34.7 kB] +Get:77 http://archive.ubuntu.com/ubuntu bionic/universe amd64 virtualenv all 15.1.0+ds-1.1 [4476 B] +Get:78 http://archive.ubuntu.com/ubuntu bionic/main amd64 cloud-image-utils all 0.30-0ubuntu5 [16.9 kB] +Get:79 http://archive.ubuntu.com/ubuntu bionic/main amd64 cloud-utils all 0.30-0ubuntu5 [1596 B] +dpkg-preconfigure: unable to re-open stdin: No such file or directory +Fetched 98.2 MB in 4s (23.8 MB/s) +Selecting previously unselected package binutils-common:amd64. +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 28944 files and directories currently installed.) +Preparing to unpack .../00-binutils-common_2.30-21ubuntu1~18.04.5_amd64.deb ... +Unpacking binutils-common:amd64 (2.30-21ubuntu1~18.04.5) ... +Selecting previously unselected package libbinutils:amd64. +Preparing to unpack .../01-libbinutils_2.30-21ubuntu1~18.04.5_amd64.deb ... +Unpacking libbinutils:amd64 (2.30-21ubuntu1~18.04.5) ... +Selecting previously unselected package binutils-x86-64-linux-gnu. +Preparing to unpack .../02-binutils-x86-64-linux-gnu_2.30-21ubuntu1~18.04.5_amd64.deb ... +Unpacking binutils-x86-64-linux-gnu (2.30-21ubuntu1~18.04.5) ... +Selecting previously unselected package binutils. +Preparing to unpack .../03-binutils_2.30-21ubuntu1~18.04.5_amd64.deb ... +Unpacking binutils (2.30-21ubuntu1~18.04.5) ... +Selecting previously unselected package bridge-utils. +Preparing to unpack .../04-bridge-utils_1.5-15ubuntu1_amd64.deb ... +Unpacking bridge-utils (1.5-15ubuntu1) ... +Selecting previously unselected package libc-dev-bin. +Preparing to unpack .../05-libc-dev-bin_2.27-3ubuntu1.4_amd64.deb ... +Unpacking libc-dev-bin (2.27-3ubuntu1.4) ... +Selecting previously unselected package linux-libc-dev:amd64. +Preparing to unpack .../06-linux-libc-dev_4.15.0-154.161_amd64.deb ... +Unpacking linux-libc-dev:amd64 (4.15.0-154.161) ... +Selecting previously unselected package libc6-dev:amd64. +Preparing to unpack .../07-libc6-dev_2.27-3ubuntu1.4_amd64.deb ... +Unpacking libc6-dev:amd64 (2.27-3ubuntu1.4) ... +Selecting previously unselected package gcc-7-base:amd64. +Preparing to unpack .../08-gcc-7-base_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking gcc-7-base:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package libisl19:amd64. +Preparing to unpack .../09-libisl19_0.19-1_amd64.deb ... +Unpacking libisl19:amd64 (0.19-1) ... +Selecting previously unselected package libmpc3:amd64. +Preparing to unpack .../10-libmpc3_1.1.0-1_amd64.deb ... +Unpacking libmpc3:amd64 (1.1.0-1) ... +Selecting previously unselected package cpp-7. +Preparing to unpack .../11-cpp-7_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking cpp-7 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package cpp. +Preparing to unpack .../12-cpp_4%3a7.4.0-1ubuntu2.3_amd64.deb ... +Unpacking cpp (4:7.4.0-1ubuntu2.3) ... +Selecting previously unselected package libcc1-0:amd64. +Preparing to unpack .../13-libcc1-0_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libcc1-0:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libgomp1:amd64. +Preparing to unpack .../14-libgomp1_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libgomp1:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libitm1:amd64. +Preparing to unpack .../15-libitm1_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libitm1:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libatomic1:amd64. +Preparing to unpack .../16-libatomic1_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libatomic1:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libasan4:amd64. +Preparing to unpack .../17-libasan4_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libasan4:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package liblsan0:amd64. +Preparing to unpack .../18-liblsan0_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking liblsan0:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libtsan0:amd64. +Preparing to unpack .../19-libtsan0_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libtsan0:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libubsan0:amd64. +Preparing to unpack .../20-libubsan0_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libubsan0:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package libcilkrts5:amd64. +Preparing to unpack .../21-libcilkrts5_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libcilkrts5:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package libmpx2:amd64. +Preparing to unpack .../22-libmpx2_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libmpx2:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libquadmath0:amd64. +Preparing to unpack .../23-libquadmath0_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libquadmath0:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libgcc-7-dev:amd64. +Preparing to unpack .../24-libgcc-7-dev_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libgcc-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package gcc-7. +Preparing to unpack .../25-gcc-7_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking gcc-7 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package gcc. +Preparing to unpack .../26-gcc_4%3a7.4.0-1ubuntu2.3_amd64.deb ... +Unpacking gcc (4:7.4.0-1ubuntu2.3) ... +Selecting previously unselected package libstdc++-7-dev:amd64. +Preparing to unpack .../27-libstdc++-7-dev_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libstdc++-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package g++-7. +Preparing to unpack .../28-g++-7_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking g++-7 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package g++. +Preparing to unpack .../29-g++_4%3a7.4.0-1ubuntu2.3_amd64.deb ... +Unpacking g++ (4:7.4.0-1ubuntu2.3) ... +Selecting previously unselected package make. +Preparing to unpack .../30-make_4.1-9.1ubuntu1_amd64.deb ... +Unpacking make (4.1-9.1ubuntu1) ... +Selecting previously unselected package libdpkg-perl. +Preparing to unpack .../31-libdpkg-perl_1.19.0.5ubuntu2.3_all.deb ... +Unpacking libdpkg-perl (1.19.0.5ubuntu2.3) ... +Selecting previously unselected package dpkg-dev. +Preparing to unpack .../32-dpkg-dev_1.19.0.5ubuntu2.3_all.deb ... +Unpacking dpkg-dev (1.19.0.5ubuntu2.3) ... +Selecting previously unselected package build-essential. +Preparing to unpack .../33-build-essential_12.4ubuntu1_amd64.deb ... +Unpacking build-essential (12.4ubuntu1) ... +Selecting previously unselected package msr-tools. +Preparing to unpack .../34-msr-tools_1.3-2build1_amd64.deb ... +Unpacking msr-tools (1.3-2build1) ... +Selecting previously unselected package cpu-checker. +Preparing to unpack .../35-cpu-checker_0.7-0ubuntu7_amd64.deb ... +Unpacking cpu-checker (0.7-0ubuntu7) ... +Selecting previously unselected package python3-lib2to3. +Preparing to unpack .../36-python3-lib2to3_3.6.9-1~18.04_all.deb ... +Unpacking python3-lib2to3 (3.6.9-1~18.04) ... +Selecting previously unselected package python3-distutils. +Preparing to unpack .../37-python3-distutils_3.6.9-1~18.04_all.deb ... +Unpacking python3-distutils (3.6.9-1~18.04) ... +Selecting previously unselected package dh-python. +Preparing to unpack .../38-dh-python_3.20180325ubuntu2_all.deb ... +Unpacking dh-python (3.20180325ubuntu2) ... +Selecting previously unselected package libfakeroot:amd64. +Preparing to unpack .../39-libfakeroot_1.22-2ubuntu1_amd64.deb ... +Unpacking libfakeroot:amd64 (1.22-2ubuntu1) ... +Selecting previously unselected package fakeroot. +Preparing to unpack .../40-fakeroot_1.22-2ubuntu1_amd64.deb ... +Unpacking fakeroot (1.22-2ubuntu1) ... +Selecting previously unselected package genisoimage. +Preparing to unpack .../41-genisoimage_9%3a1.1.11-3ubuntu2_amd64.deb ... +Unpacking genisoimage (9:1.1.11-3ubuntu2) ... +Selecting previously unselected package libnl-3-200:amd64. +Preparing to unpack .../42-libnl-3-200_3.2.29-0ubuntu3_amd64.deb ... +Unpacking libnl-3-200:amd64 (3.2.29-0ubuntu3) ... +Selecting previously unselected package libnl-route-3-200:amd64. +Preparing to unpack .../43-libnl-route-3-200_3.2.29-0ubuntu3_amd64.deb ... +Unpacking libnl-route-3-200:amd64 (3.2.29-0ubuntu3) ... +Selecting previously unselected package libibverbs1:amd64. +Preparing to unpack .../44-libibverbs1_17.1-1ubuntu0.2_amd64.deb ... +Unpacking libibverbs1:amd64 (17.1-1ubuntu0.2) ... +Selecting previously unselected package ibverbs-providers:amd64. +Preparing to unpack .../45-ibverbs-providers_17.1-1ubuntu0.2_amd64.deb ... +Unpacking ibverbs-providers:amd64 (17.1-1ubuntu0.2) ... +Selecting previously unselected package libaio1:amd64. +Preparing to unpack .../46-libaio1_0.3.110-5ubuntu0.1_amd64.deb ... +Unpacking libaio1:amd64 (0.3.110-5ubuntu0.1) ... +Selecting previously unselected package libalgorithm-diff-perl. +Preparing to unpack .../47-libalgorithm-diff-perl_1.19.03-1_all.deb ... +Unpacking libalgorithm-diff-perl (1.19.03-1) ... +Selecting previously unselected package libalgorithm-diff-xs-perl. +Preparing to unpack .../48-libalgorithm-diff-xs-perl_0.04-5_amd64.deb ... +Unpacking libalgorithm-diff-xs-perl (0.04-5) ... +Selecting previously unselected package libalgorithm-merge-perl. +Preparing to unpack .../49-libalgorithm-merge-perl_0.08-3_all.deb ... +Unpacking libalgorithm-merge-perl (0.08-3) ... +Selecting previously unselected package libexpat1-dev:amd64. +Preparing to unpack .../50-libexpat1-dev_2.2.5-3ubuntu0.2_amd64.deb ... +Unpacking libexpat1-dev:amd64 (2.2.5-3ubuntu0.2) ... +Selecting previously unselected package libfile-fcntllock-perl. +Preparing to unpack .../51-libfile-fcntllock-perl_0.22-3build2_amd64.deb ... +Unpacking libfile-fcntllock-perl (0.22-3build2) ... +Selecting previously unselected package libiscsi7:amd64. +Preparing to unpack .../52-libiscsi7_1.17.0-1.1_amd64.deb ... +Unpacking libiscsi7:amd64 (1.17.0-1.1) ... +Selecting previously unselected package libnspr4:amd64. +Preparing to unpack .../53-libnspr4_2%3a4.18-1ubuntu1_amd64.deb ... +Unpacking libnspr4:amd64 (2:4.18-1ubuntu1) ... +Selecting previously unselected package libnss3:amd64. +Preparing to unpack .../54-libnss3_2%3a3.35-2ubuntu2.12_amd64.deb ... +Unpacking libnss3:amd64 (2:3.35-2ubuntu2.12) ... +Selecting previously unselected package libpython3.6-dev:amd64. +Preparing to unpack .../55-libpython3.6-dev_3.6.9-1~18.04ubuntu1.4_amd64.deb ... +Unpacking libpython3.6-dev:amd64 (3.6.9-1~18.04ubuntu1.4) ... +Selecting previously unselected package libpython3-dev:amd64. +Preparing to unpack .../56-libpython3-dev_3.6.7-1~18.04_amd64.deb ... +Unpacking libpython3-dev:amd64 (3.6.7-1~18.04) ... +Selecting previously unselected package librados2. +Preparing to unpack .../57-librados2_12.2.13-0ubuntu0.18.04.8_amd64.deb ... +Unpacking librados2 (12.2.13-0ubuntu0.18.04.8) ... +Selecting previously unselected package librbd1. +Preparing to unpack .../58-librbd1_12.2.13-0ubuntu0.18.04.8_amd64.deb ... +Unpacking librbd1 (12.2.13-0ubuntu0.18.04.8) ... +Selecting previously unselected package manpages-dev. +Preparing to unpack .../59-manpages-dev_4.15-1_all.deb ... +Unpacking manpages-dev (4.15-1) ... +Selecting previously unselected package python-pip-whl. +Preparing to unpack .../60-python-pip-whl_9.0.1-2.3~ubuntu1.18.04.5_all.deb ... +Unpacking python-pip-whl (9.0.1-2.3~ubuntu1.18.04.5) ... +Selecting previously unselected package python3-crypto. +Preparing to unpack .../61-python3-crypto_2.6.1-8ubuntu2_amd64.deb ... +Unpacking python3-crypto (2.6.1-8ubuntu2) ... +Selecting previously unselected package python3.6-dev. +Preparing to unpack .../62-python3.6-dev_3.6.9-1~18.04ubuntu1.4_amd64.deb ... +Unpacking python3.6-dev (3.6.9-1~18.04ubuntu1.4) ... +Selecting previously unselected package python3-dev. +Preparing to unpack .../63-python3-dev_3.6.7-1~18.04_amd64.deb ... +Unpacking python3-dev (3.6.7-1~18.04) ... +Selecting previously unselected package python3-secretstorage. +Preparing to unpack .../64-python3-secretstorage_2.3.1-2_all.deb ... +Unpacking python3-secretstorage (2.3.1-2) ... +Selecting previously unselected package python3-keyring. +Preparing to unpack .../65-python3-keyring_10.6.0-1_all.deb ... +Unpacking python3-keyring (10.6.0-1) ... +Selecting previously unselected package python3-keyrings.alt. +Preparing to unpack .../66-python3-keyrings.alt_3.0-1_all.deb ... +Unpacking python3-keyrings.alt (3.0-1) ... +Selecting previously unselected package python3-pip. +Preparing to unpack .../67-python3-pip_9.0.1-2.3~ubuntu1.18.04.5_all.deb ... +Unpacking python3-pip (9.0.1-2.3~ubuntu1.18.04.5) ... +Selecting previously unselected package python3-setuptools. +Preparing to unpack .../68-python3-setuptools_39.0.1-2_all.deb ... +Unpacking python3-setuptools (39.0.1-2) ... +Selecting previously unselected package python3-virtualenv. +Preparing to unpack .../69-python3-virtualenv_15.1.0+ds-1.1_all.deb ... +Unpacking python3-virtualenv (15.1.0+ds-1.1) ... +Selecting previously unselected package python3-wheel. +Preparing to unpack .../70-python3-wheel_0.30.0-0.2_all.deb ... +Unpacking python3-wheel (0.30.0-0.2) ... +Selecting previously unselected package python3-xdg. +Preparing to unpack .../71-python3-xdg_0.25-4ubuntu1.1_all.deb ... +Unpacking python3-xdg (0.25-4ubuntu1.1) ... +Selecting previously unselected package qemu-block-extra:amd64. +Preparing to unpack .../72-qemu-block-extra_1%3a2.11+dfsg-1ubuntu7.37_amd64.deb ... +Unpacking qemu-block-extra:amd64 (1:2.11+dfsg-1ubuntu7.37) ... +Selecting previously unselected package qemu-utils. +Preparing to unpack .../73-qemu-utils_1%3a2.11+dfsg-1ubuntu7.37_amd64.deb ... +Unpacking qemu-utils (1:2.11+dfsg-1ubuntu7.37) ... +Selecting previously unselected package sharutils. +Preparing to unpack .../74-sharutils_1%3a4.15.2-3_amd64.deb ... +Unpacking sharutils (1:4.15.2-3) ... +Selecting previously unselected package ubuntu-fan. +Preparing to unpack .../75-ubuntu-fan_0.12.10_all.deb ... +Unpacking ubuntu-fan (0.12.10) ... +Selecting previously unselected package virtualenv. +Preparing to unpack .../76-virtualenv_15.1.0+ds-1.1_all.deb ... +Unpacking virtualenv (15.1.0+ds-1.1) ... +Selecting previously unselected package cloud-image-utils. +Preparing to unpack .../77-cloud-image-utils_0.30-0ubuntu5_all.deb ... +Unpacking cloud-image-utils (0.30-0ubuntu5) ... +Selecting previously unselected package cloud-utils. +Preparing to unpack .../78-cloud-utils_0.30-0ubuntu5_all.deb ... +Unpacking cloud-utils (0.30-0ubuntu5) ... +Setting up libquadmath0:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up libgomp1:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up libatomic1:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up python-pip-whl (9.0.1-2.3~ubuntu1.18.04.5) ... +Setting up libcc1-0:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up make (4.1-9.1ubuntu1) ... +Setting up python3-crypto (2.6.1-8ubuntu2) ... +Setting up libtsan0:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up sharutils (1:4.15.2-3) ... +Setting up libiscsi7:amd64 (1.17.0-1.1) ... +Setting up python3-xdg (0.25-4ubuntu1.1) ... +Setting up python3-keyrings.alt (3.0-1) ... +Setting up linux-libc-dev:amd64 (4.15.0-154.161) ... +Setting up genisoimage (9:1.1.11-3ubuntu2) ... +Setting up libdpkg-perl (1.19.0.5ubuntu2.3) ... +Setting up python3-wheel (0.30.0-0.2) ... +Setting up msr-tools (1.3-2build1) ... +Setting up libnspr4:amd64 (2:4.18-1ubuntu1) ... +Setting up bridge-utils (1.5-15ubuntu1) ... +Setting up liblsan0:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up gcc-7-base:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up binutils-common:amd64 (2.30-21ubuntu1~18.04.5) ... +Setting up libfile-fcntllock-perl (0.22-3build2) ... +Setting up libmpx2:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up libaio1:amd64 (0.3.110-5ubuntu0.1) ... +Setting up ubuntu-fan (0.12.10) ... +Created symlink /etc/systemd/system/multi-user.target.wants/ubuntu-fan.service → /lib/systemd/system/ubuntu-fan.service. +Setting up cpu-checker (0.7-0ubuntu7) ... +Setting up libfakeroot:amd64 (1.22-2ubuntu1) ... +Setting up libalgorithm-diff-perl (1.19.03-1) ... +Setting up libmpc3:amd64 (1.1.0-1) ... +Setting up libc-dev-bin (2.27-3ubuntu1.4) ... +Setting up libnl-3-200:amd64 (3.2.29-0ubuntu3) ... +Setting up python3-lib2to3 (3.6.9-1~18.04) ... +Setting up python3-secretstorage (2.3.1-2) ... +Setting up manpages-dev (4.15-1) ... +Setting up libc6-dev:amd64 (2.27-3ubuntu1.4) ... +Setting up python3-distutils (3.6.9-1~18.04) ... +Setting up libitm1:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up libisl19:amd64 (0.19-1) ... +Setting up libasan4:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up python3-keyring (10.6.0-1) ... +Setting up libbinutils:amd64 (2.30-21ubuntu1~18.04.5) ... +Setting up libcilkrts5:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up libubsan0:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up libnss3:amd64 (2:3.35-2ubuntu2.12) ... +Setting up libnl-route-3-200:amd64 (3.2.29-0ubuntu3) ... +Setting up fakeroot (1.22-2ubuntu1) ... +update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode +Setting up libgcc-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up cpp-7 (7.5.0-3ubuntu1~18.04) ... +Setting up libstdc++-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up libalgorithm-merge-perl (0.08-3) ... +Setting up libalgorithm-diff-xs-perl (0.04-5) ... +Setting up python3-virtualenv (15.1.0+ds-1.1) ... +Setting up python3-pip (9.0.1-2.3~ubuntu1.18.04.5) ... +Setting up libexpat1-dev:amd64 (2.2.5-3ubuntu0.2) ... +Setting up python3-setuptools (39.0.1-2) ... +Setting up dh-python (3.20180325ubuntu2) ... +Setting up virtualenv (15.1.0+ds-1.1) ... +Setting up binutils-x86-64-linux-gnu (2.30-21ubuntu1~18.04.5) ... +Setting up libibverbs1:amd64 (17.1-1ubuntu0.2) ... +Setting up cpp (4:7.4.0-1ubuntu2.3) ... +Setting up libpython3.6-dev:amd64 (3.6.9-1~18.04ubuntu1.4) ... +Setting up librados2 (12.2.13-0ubuntu0.18.04.8) ... +Setting up ibverbs-providers:amd64 (17.1-1ubuntu0.2) ... +Setting up binutils (2.30-21ubuntu1~18.04.5) ... +Setting up python3.6-dev (3.6.9-1~18.04ubuntu1.4) ... +Setting up libpython3-dev:amd64 (3.6.7-1~18.04) ... +Setting up gcc-7 (7.5.0-3ubuntu1~18.04) ... +Setting up g++-7 (7.5.0-3ubuntu1~18.04) ... +Setting up python3-dev (3.6.7-1~18.04) ... +Setting up librbd1 (12.2.13-0ubuntu0.18.04.8) ... +Setting up gcc (4:7.4.0-1ubuntu2.3) ... +Setting up qemu-block-extra:amd64 (1:2.11+dfsg-1ubuntu7.37) ... +Setting up qemu-utils (1:2.11+dfsg-1ubuntu7.37) ... +Setting up dpkg-dev (1.19.0.5ubuntu2.3) ... +Setting up g++ (4:7.4.0-1ubuntu2.3) ... +update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode +Setting up cloud-image-utils (0.30-0ubuntu5) ... +Setting up build-essential (12.4ubuntu1) ... +Setting up cloud-utils (0.30-0ubuntu5) ... +Processing triggers for install-info (6.5.0.dfsg.1-2) ... +Processing triggers for libc-bin (2.27-3ubuntu1.4) ... +Processing triggers for systemd (237-3ubuntu10.51) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... +Processing triggers for ureadahead (0.100.0-21) ... ++ echo 'Installing Juju agent 2.9.12-ubuntu-amd64' +Installing Juju agent 2.9.12-ubuntu-amd64 ++ lxc exec juju-bionic-base -- mkdir -p /var/lib/juju/tools/2.9.12-ubuntu-amd64/ ++ lxc exec juju-bionic-base -- curl -sS --connect-timeout 20 --noproxy '*' --insecure -o /var/lib/juju/tools/2.9.12-ubuntu-amd64/tools.tar.gz https://streams.canonical.com/juju/tools/agent/2.9.12/juju-2.9.12-ubuntu-amd64.tgz ++ lxc exec juju-bionic-base -- tar zxf /var/lib/juju/tools/2.9.12-ubuntu-amd64/tools.tar.gz -C /var/lib/juju/tools/2.9.12-ubuntu-amd64 ++ lxc stop juju-bionic-base ++ lxc image delete juju/bionic/amd64 +Error: not found ++ true ++ lxc image delete clean-bionic +++ date +%Y%m%d ++ lxc publish juju-bionic-base --alias juju/bionic/amd64 'description=bionic juju dev image (20210906)' + Publishing instance: Image pack: 1% (3.26MB/s) Publishing instance: Image pack: 2% (3.43MB/s) Publishing instance: Image pack: 3% (4.39MB/s) Publishing instance: Image pack: 4% (4.97MB/s) Publishing instance: Image pack: 5% (5.33MB/s) Publishing instance: Image pack: 6% (5.54MB/s) Publishing instance: Image pack: 7% (5.65MB/s) Publishing instance: Image pack: 8% (5.75MB/s) Publishing instance: Image pack: 9% (5.91MB/s) Publishing instance: Image pack: 10% (5.97MB/s) Publishing instance: Image pack: 10% (6.11MB/s) Publishing instance: Image pack: 11% (6.28MB/s) Publishing instance: Image pack: 12% (6.37MB/s) Publishing instance: Image pack: 13% (6.29MB/s) Publishing instance: Image pack: 14% (6.36MB/s) Publishing instance: Image pack: 15% (6.39MB/s) Publishing instance: Image pack: 16% (6.43MB/s) Publishing instance: Image pack: 17% (6.52MB/s) Publishing instance: Image pack: 18% (6.61MB/s) Publishing instance: Image pack: 19% (6.76MB/s) Publishing instance: Image pack: 19% (6.88MB/s) Publishing instance: Image pack: 20% (6.90MB/s) Publishing instance: Image pack: 21% (6.93MB/s) Publishing instance: Image pack: 22% (6.90MB/s) Publishing instance: Image pack: 23% (6.88MB/s) Publishing instance: Image pack: 24% (6.88MB/s) Publishing instance: Image pack: 25% (6.86MB/s) Publishing instance: Image pack: 26% (6.80MB/s) Publishing instance: Image pack: 27% (6.85MB/s) Publishing instance: Image pack: 28% (6.87MB/s) Publishing instance: Image pack: 28% (6.96MB/s) Publishing instance: Image pack: 29% (6.99MB/s) Publishing instance: Image pack: 30% (7.12MB/s) Publishing instance: Image pack: 31% (7.24MB/s) Publishing instance: Image pack: 32% (7.36MB/s) Publishing instance: Image pack: 33% (7.47MB/s) Publishing instance: Image pack: 34% (7.43MB/s) Publishing instance: Image pack: 35% (7.38MB/s) Publishing instance: Image pack: 36% (7.42MB/s) Publishing instance: Image pack: 37% (7.47MB/s) Publishing instance: Image pack: 37% (7.55MB/s) Publishing instance: Image pack: 38% (7.55MB/s) Publishing instance: Image pack: 39% (7.56MB/s) Publishing instance: Image pack: 40% (7.58MB/s) Publishing instance: Image pack: 41% (7.57MB/s) Publishing instance: Image pack: 42% (7.55MB/s) Publishing instance: Image pack: 43% (7.56MB/s) Publishing instance: Image pack: 44% (7.55MB/s) Publishing instance: Image pack: 45% (7.54MB/s) Publishing instance: Image pack: 46% (7.57MB/s) Publishing instance: Image pack: 46% (7.60MB/s) Publishing instance: Image pack: 47% (7.58MB/s) Publishing instance: Image pack: 48% (7.58MB/s) Publishing instance: Image pack: 49% (7.60MB/s) Publishing instance: Image pack: 50% (7.61MB/s) Publishing instance: Image pack: 51% (7.57MB/s) Publishing instance: Image pack: 52% (7.51MB/s) Publishing instance: Image pack: 53% (7.51MB/s) Publishing instance: Image pack: 54% (7.42MB/s) Publishing instance: Image pack: 55% (7.41MB/s) Publishing instance: Image pack: 55% (7.46MB/s) Publishing instance: Image pack: 56% (7.45MB/s) Publishing instance: Image pack: 57% (7.47MB/s) Publishing instance: Image pack: 58% (7.40MB/s) Publishing instance: Image pack: 59% (7.34MB/s) Publishing instance: Image pack: 60% (7.34MB/s) Publishing instance: Image pack: 61% (7.21MB/s) Publishing instance: Image pack: 62% (7.14MB/s) Publishing instance: Image pack: 63% (7.09MB/s) Publishing instance: Image pack: 64% (7.07MB/s) Publishing instance: Image pack: 64% (7.10MB/s) Publishing instance: Image pack: 65% (7.13MB/s) Publishing instance: Image pack: 66% (7.15MB/s) Publishing instance: Image pack: 67% (7.19MB/s) Publishing instance: Image pack: 68% (7.21MB/s) Publishing instance: Image pack: 69% (7.25MB/s) Publishing instance: Image pack: 70% (7.23MB/s) Publishing instance: Image pack: 71% (7.25MB/s) Publishing instance: Image pack: 72% (7.26MB/s) Publishing instance: Image pack: 73% (7.28MB/s) Publishing instance: Image pack: 73% (7.28MB/s) Publishing instance: Image pack: 74% (7.26MB/s) Publishing instance: Image pack: 75% (7.29MB/s) Publishing instance: Image pack: 76% (7.34MB/s) Publishing instance: Image pack: 77% (7.38MB/s) Publishing instance: Image pack: 78% (7.43MB/s) Publishing instance: Image pack: 79% (7.47MB/s) Publishing instance: Image pack: 80% (7.49MB/s) Publishing instance: Image pack: 81% (7.53MB/s) Publishing instance: Image pack: 82% (7.55MB/s) Publishing instance: Image pack: 83% (7.58MB/s) Publishing instance: Image pack: 83% (7.59MB/s) Publishing instance: Image pack: 84% (7.61MB/s) Publishing instance: Image pack: 85% (7.67MB/s) Publishing instance: Image pack: 86% (7.71MB/s) Publishing instance: Image pack: 87% (7.69MB/s) Publishing instance: Image pack: 88% (7.71MB/s) Publishing instance: Image pack: 89% (7.73MB/s) Publishing instance: Image pack: 90% (7.62MB/s) Publishing instance: Image pack: 91% (7.65MB/s) Publishing instance: Image pack: 92% (7.68MB/s) Publishing instance: Image pack: 92% (7.70MB/s) Publishing instance: Image pack: 93% (7.72MB/s) Publishing instance: Image pack: 94% (7.74MB/s) Publishing instance: Image pack: 95% (7.76MB/s) Publishing instance: Image pack: 96% (7.75MB/s) Publishing instance: Image pack: 97% (7.77MB/s) Publishing instance: Image pack: 98% (7.76MB/s) Publishing instance: Image pack: 99% (7.75MB/s) Publishing instance: Image pack: 100% (7.77MB/s) Publishing instance: Image pack: 100% (7.75MB/s) Publishing instance: Image pack: 100% (7.76MB/s) Instance published with fingerprint: 7f6877709cdc8ff35294f0919b996896d3330fc070b0bced20dd711710ab3f2e ++ lxc delete juju-bionic-base -f +Finished installation of juju + +k8s substrate added as cloud "k8scloud" with storage provisioned +by the existing "openebs-hostpath" storage class. +You can now bootstrap to this cloud by running 'juju bootstrap k8scloud'. +Creating Juju controller "osm" on k8scloud +Bootstrap to generic Kubernetes cluster +Fetching Juju Dashboard 0.8.1 +Creating k8s resources for controller "controller-osm" +Downloading images +Starting controller pod +Bootstrap agent now started +Contacting Juju controller at 192.168.64.19 to verify accessibility... + +Bootstrap complete, controller "osm" is now available in namespace "controller-osm" + +Now you can run + juju add-model +to create a new model to deploy k8s workloads. +Can't load /home/ubuntu/.rnd into RNG +140324386386368:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:88:Filename=/home/ubuntu/.rnd +Generating a RSA private key +............+++++ +................................................................................+++++ +writing new private key to '/tmp/.osm/client.key' +----- +Cloud "lxd-cloud" added to controller "osm". +WARNING loading credentials: credentials for cloud lxd-cloud not found +To upload a credential to the controller for cloud "lxd-cloud", use +* 'add-model' with --credential option or +* 'add-credential -c lxd-cloud'. +Using cloud "lxd-cloud" from the controller to verify credentials. +Controller credential "lxd-cloud" for user "admin" for cloud "lxd-cloud" on controller "osm" added. +For more information, see ‘juju show-credential lxd-cloud lxd-cloud’. +Pulling and generating docker images +Pulling docker images +Using default tag: latest +latest: Pulling from wurstmeister/zookeeper +a3ed95caeb02: Pulling fs layer +ef38b711a50f: Pulling fs layer +e057c74597c7: Pulling fs layer +666c214f6385: Pulling fs layer +c3d6a96f1ffc: Pulling fs layer +3fe26a83e0ca: Pulling fs layer +3d3a7dd3a3b1: Pulling fs layer +f8cc938abe5f: Pulling fs layer +9978b75f7a58: Pulling fs layer +4d4dbcc8f8cc: Pulling fs layer +8b130a9baa49: Pulling fs layer +6b9611650a73: Pulling fs layer +5df5aac51927: Pulling fs layer +76eea4448d9b: Pulling fs layer +8b66990876c6: Pulling fs layer +f0dd38204b6f: Pulling fs layer +666c214f6385: Waiting +c3d6a96f1ffc: Waiting +3fe26a83e0ca: Waiting +3d3a7dd3a3b1: Waiting +f8cc938abe5f: Waiting +9978b75f7a58: Waiting +4d4dbcc8f8cc: Waiting +8b130a9baa49: Waiting +6b9611650a73: Waiting +5df5aac51927: Waiting +76eea4448d9b: Waiting +8b66990876c6: Waiting +f0dd38204b6f: Waiting +e057c74597c7: Verifying Checksum +e057c74597c7: Download complete +a3ed95caeb02: Verifying Checksum +a3ed95caeb02: Download complete +666c214f6385: Verifying Checksum +666c214f6385: Download complete +c3d6a96f1ffc: Verifying Checksum +c3d6a96f1ffc: Download complete +3fe26a83e0ca: Verifying Checksum +3fe26a83e0ca: Download complete +a3ed95caeb02: Pull complete +f8cc938abe5f: Verifying Checksum +f8cc938abe5f: Download complete +9978b75f7a58: Verifying Checksum +9978b75f7a58: Download complete +4d4dbcc8f8cc: Verifying Checksum +4d4dbcc8f8cc: Download complete +ef38b711a50f: Verifying Checksum +ef38b711a50f: Download complete +6b9611650a73: Verifying Checksum +6b9611650a73: Download complete +8b130a9baa49: Verifying Checksum +8b130a9baa49: Download complete +76eea4448d9b: Verifying Checksum +76eea4448d9b: Download complete +5df5aac51927: Verifying Checksum +5df5aac51927: Download complete +8b66990876c6: Verifying Checksum +8b66990876c6: Download complete +f0dd38204b6f: Verifying Checksum +f0dd38204b6f: Download complete +3d3a7dd3a3b1: Verifying Checksum +3d3a7dd3a3b1: Download complete +ef38b711a50f: Pull complete +e057c74597c7: Pull complete +666c214f6385: Pull complete +c3d6a96f1ffc: Pull complete +3fe26a83e0ca: Pull complete +3d3a7dd3a3b1: Pull complete +f8cc938abe5f: Pull complete +9978b75f7a58: Pull complete +4d4dbcc8f8cc: Pull complete +8b130a9baa49: Pull complete +6b9611650a73: Pull complete +5df5aac51927: Pull complete +76eea4448d9b: Pull complete +8b66990876c6: Pull complete +f0dd38204b6f: Pull complete +Digest: sha256:7a7fd44a72104bfbd24a77844bad5fabc86485b036f988ea927d1780782a6680 +Status: Downloaded newer image for wurstmeister/zookeeper:latest +docker.io/wurstmeister/zookeeper:latest +2.11-1.0.2: Pulling from wurstmeister/kafka +e7c96db7181b: Pulling fs layer +f910a506b6cb: Pulling fs layer +b6abafe80f63: Pulling fs layer +68cb15346952: Pulling fs layer +e174218f225d: Pulling fs layer +f109a8cf0e78: Pulling fs layer +68cb15346952: Waiting +e174218f225d: Waiting +f109a8cf0e78: Waiting +f910a506b6cb: Verifying Checksum +f910a506b6cb: Download complete +e7c96db7181b: Verifying Checksum +e7c96db7181b: Download complete +e7c96db7181b: Pull complete +68cb15346952: Verifying Checksum +68cb15346952: Download complete +f910a506b6cb: Pull complete +f109a8cf0e78: Verifying Checksum +f109a8cf0e78: Download complete +b6abafe80f63: Verifying Checksum +b6abafe80f63: Download complete +e174218f225d: Verifying Checksum +e174218f225d: Download complete +b6abafe80f63: Pull complete +68cb15346952: Pull complete +e174218f225d: Pull complete +f109a8cf0e78: Pull complete +Digest: sha256:04fbc9021e73b6bc1fe3ecdfabaf5a66dbd6ef0b0e7c98c83ce5610d702304e9 +Status: Downloaded newer image for wurstmeister/kafka:2.11-1.0.2 +docker.io/wurstmeister/kafka:2.11-1.0.2 +Using default tag: latest +latest: Pulling from library/mongo +35807b77a593: Pulling fs layer +664b0ebdcc07: Pulling fs layer +d598f4d3c081: Pulling fs layer +291455135b00: Pulling fs layer +b46409342f13: Pulling fs layer +ff2b9c6e6f3a: Pulling fs layer +149f6335fc27: Pulling fs layer +baeb6f3bec76: Pulling fs layer +8617caab2de5: Pulling fs layer +067d70de7828: Pulling fs layer +291455135b00: Waiting +b46409342f13: Waiting +ff2b9c6e6f3a: Waiting +149f6335fc27: Waiting +baeb6f3bec76: Waiting +8617caab2de5: Waiting +067d70de7828: Waiting +664b0ebdcc07: Verifying Checksum +664b0ebdcc07: Download complete +d598f4d3c081: Verifying Checksum +d598f4d3c081: Download complete +b46409342f13: Verifying Checksum +b46409342f13: Download complete +35807b77a593: Verifying Checksum +35807b77a593: Download complete +291455135b00: Verifying Checksum +291455135b00: Download complete +ff2b9c6e6f3a: Verifying Checksum +ff2b9c6e6f3a: Download complete +149f6335fc27: Verifying Checksum +149f6335fc27: Download complete +8617caab2de5: Verifying Checksum +8617caab2de5: Download complete +067d70de7828: Verifying Checksum +067d70de7828: Download complete +35807b77a593: Pull complete +664b0ebdcc07: Pull complete +baeb6f3bec76: Verifying Checksum +baeb6f3bec76: Download complete +d598f4d3c081: Pull complete +291455135b00: Pull complete +b46409342f13: Pull complete +ff2b9c6e6f3a: Pull complete +149f6335fc27: Pull complete +baeb6f3bec76: Pull complete +8617caab2de5: Pull complete +067d70de7828: Pull complete +Digest: sha256:58ea1bc09f269a9b85b7e1fae83b7505952aaa521afaaca4131f558955743842 +Status: Downloaded newer image for mongo:latest +docker.io/library/mongo:latest +v2.4.3: Pulling from prom/prometheus +8c5a7da1afbc: Pulling fs layer +cab0dd93492f: Pulling fs layer +21399993eeff: Pulling fs layer +50fe4c0f18ae: Pulling fs layer +bab8b4ed1fef: Pulling fs layer +5bd3aaf93e52: Pulling fs layer +ccb08d41de26: Pulling fs layer +51047cce385d: Pulling fs layer +51c32e598e5c: Pulling fs layer +50fe4c0f18ae: Waiting +bab8b4ed1fef: Waiting +5bd3aaf93e52: Waiting +51c32e598e5c: Waiting +ccb08d41de26: Waiting +51047cce385d: Waiting +8c5a7da1afbc: Verifying Checksum +8c5a7da1afbc: Download complete +cab0dd93492f: Verifying Checksum +cab0dd93492f: Download complete +bab8b4ed1fef: Verifying Checksum +bab8b4ed1fef: Download complete +21399993eeff: Verifying Checksum +21399993eeff: Download complete +5bd3aaf93e52: Verifying Checksum +5bd3aaf93e52: Download complete +50fe4c0f18ae: Verifying Checksum +50fe4c0f18ae: Download complete +8c5a7da1afbc: Pull complete +ccb08d41de26: Verifying Checksum +ccb08d41de26: Download complete +51047cce385d: Verifying Checksum +51047cce385d: Download complete +51c32e598e5c: Verifying Checksum +51c32e598e5c: Download complete +cab0dd93492f: Pull complete +21399993eeff: Pull complete +50fe4c0f18ae: Pull complete +bab8b4ed1fef: Pull complete +5bd3aaf93e52: Pull complete +ccb08d41de26: Pull complete +51047cce385d: Pull complete +51c32e598e5c: Pull complete +Digest: sha256:2d79525389d68a309db843c1888f364823afbbef32ffea4741024d2ab9994dd6 +Status: Downloaded newer image for prom/prometheus:v2.4.3 +docker.io/prom/prometheus:v2.4.3 +latest: Pulling from google/cadvisor +ff3a5c916c92: Already exists +44a45bb65cdf: Pulling fs layer +0bbe1a2fe2a6: Pulling fs layer +0bbe1a2fe2a6: Verifying Checksum +0bbe1a2fe2a6: Download complete +44a45bb65cdf: Verifying Checksum +44a45bb65cdf: Download complete +44a45bb65cdf: Pull complete +0bbe1a2fe2a6: Pull complete +Digest: sha256:815386ebbe9a3490f38785ab11bda34ec8dacf4634af77b8912832d4f85dca04 +Status: Downloaded newer image for google/cadvisor:latest +docker.io/google/cadvisor:latest +latest: Pulling from grafana/grafana +540db60ca938: Pulling fs layer +475d6aa6cde2: Pulling fs layer +86c565d1875f: Pulling fs layer +bacbab00d598: Pulling fs layer +eba2484373d9: Pulling fs layer +4f4fb700ef54: Pulling fs layer +de780c7f2383: Pulling fs layer +40175e15d294: Pulling fs layer +bacbab00d598: Waiting +eba2484373d9: Waiting +4f4fb700ef54: Waiting +40175e15d294: Waiting +de780c7f2383: Waiting +475d6aa6cde2: Verifying Checksum +475d6aa6cde2: Download complete +86c565d1875f: Verifying Checksum +86c565d1875f: Download complete +540db60ca938: Verifying Checksum +540db60ca938: Pull complete +4f4fb700ef54: Verifying Checksum +4f4fb700ef54: Download complete +bacbab00d598: Verifying Checksum +bacbab00d598: Download complete +475d6aa6cde2: Pull complete +de780c7f2383: Verifying Checksum +de780c7f2383: Download complete +40175e15d294: Verifying Checksum +40175e15d294: Download complete +eba2484373d9: Verifying Checksum +eba2484373d9: Download complete +86c565d1875f: Pull complete +bacbab00d598: Pull complete +eba2484373d9: Pull complete +4f4fb700ef54: Pull complete +de780c7f2383: Pull complete +40175e15d294: Pull complete +Digest: sha256:811ee7d685fe45e5625928716d189c518f2b96edaa86122a04cc6faf1e988180 +Status: Downloaded newer image for grafana/grafana:latest +docker.io/grafana/grafana:latest +10: Pulling from library/mariadb +35807b77a593: Already exists +7275e59ecb3d: Pulling fs layer +e8aad5ad91b4: Pulling fs layer +c9acfbaed0bf: Pulling fs layer +c0eb3de6044a: Pulling fs layer +bc1fe3865c9c: Pulling fs layer +63117ccbd0ec: Pulling fs layer +91c9aaf2ea87: Pulling fs layer +2118d7479e34: Pulling fs layer +6bd89e50398a: Pulling fs layer +63117ccbd0ec: Waiting +91c9aaf2ea87: Waiting +2118d7479e34: Waiting +6bd89e50398a: Waiting +c0eb3de6044a: Waiting +bc1fe3865c9c: Waiting +7275e59ecb3d: Download complete +c9acfbaed0bf: Verifying Checksum +c9acfbaed0bf: Download complete +e8aad5ad91b4: Download complete +7275e59ecb3d: Pull complete +c0eb3de6044a: Verifying Checksum +c0eb3de6044a: Download complete +63117ccbd0ec: Verifying Checksum +63117ccbd0ec: Download complete +bc1fe3865c9c: Verifying Checksum +bc1fe3865c9c: Download complete +91c9aaf2ea87: Verifying Checksum +91c9aaf2ea87: Download complete +e8aad5ad91b4: Pull complete +6bd89e50398a: Verifying Checksum +6bd89e50398a: Download complete +c9acfbaed0bf: Pull complete +c0eb3de6044a: Pull complete +2118d7479e34: Verifying Checksum +2118d7479e34: Download complete +bc1fe3865c9c: Pull complete +63117ccbd0ec: Pull complete +91c9aaf2ea87: Pull complete +2118d7479e34: Pull complete +6bd89e50398a: Pull complete +Digest: sha256:4bbee12b1adf299211f844ebbe89563675c46965470dcfa40f5278d63c56d030 +Status: Downloaded newer image for mariadb:10 +docker.io/library/mariadb:10 +5: Pulling from library/mysql +a330b6cecb98: Pulling fs layer +9c8f656c32b8: Pulling fs layer +88e473c3f553: Pulling fs layer +062463ea5d2f: Pulling fs layer +daf7e3bdf4b6: Pulling fs layer +1839c0b7aac9: Pulling fs layer +cf0a0cfee6d0: Pulling fs layer +fae7a809788c: Pulling fs layer +dae5a82a61f0: Pulling fs layer +7063da9569eb: Pulling fs layer +51a9a9b4ef36: Pulling fs layer +1839c0b7aac9: Waiting +cf0a0cfee6d0: Waiting +fae7a809788c: Waiting +dae5a82a61f0: Waiting +7063da9569eb: Waiting +51a9a9b4ef36: Waiting +062463ea5d2f: Waiting +daf7e3bdf4b6: Waiting +9c8f656c32b8: Verifying Checksum +9c8f656c32b8: Download complete +88e473c3f553: Verifying Checksum +88e473c3f553: Download complete +062463ea5d2f: Verifying Checksum +062463ea5d2f: Download complete +a330b6cecb98: Verifying Checksum +a330b6cecb98: Download complete +daf7e3bdf4b6: Verifying Checksum +daf7e3bdf4b6: Download complete +cf0a0cfee6d0: Verifying Checksum +cf0a0cfee6d0: Download complete +fae7a809788c: Verifying Checksum +fae7a809788c: Download complete +1839c0b7aac9: Verifying Checksum +1839c0b7aac9: Download complete +7063da9569eb: Verifying Checksum +7063da9569eb: Download complete +51a9a9b4ef36: Verifying Checksum +51a9a9b4ef36: Download complete +dae5a82a61f0: Verifying Checksum +dae5a82a61f0: Download complete +a330b6cecb98: Pull complete +9c8f656c32b8: Pull complete +88e473c3f553: Pull complete +062463ea5d2f: Pull complete +daf7e3bdf4b6: Pull complete +1839c0b7aac9: Pull complete +cf0a0cfee6d0: Pull complete +fae7a809788c: Pull complete +dae5a82a61f0: Pull complete +7063da9569eb: Pull complete +51a9a9b4ef36: Pull complete +Digest: sha256:d9b934cdf6826629f8d02ea01f28b2c4ddb1ae27c32664b14867324b3e5e1291 +Status: Downloaded newer image for mysql:5 +docker.io/library/mysql:5 +Pulling OSM docker images +Pulling opensourcemano/mon:10 docker image +10: Pulling from opensourcemano/mon +c549ccf8d472: Pulling fs layer +24b1ce98fe2c: Pulling fs layer +17a1f8ed7bac: Pulling fs layer +ef86da65f6f8: Pulling fs layer +04a6b6e92a44: Pulling fs layer +25e42a5d110d: Pulling fs layer +06b2c9a2dfdd: Pulling fs layer +b3b5842693b5: Pulling fs layer +355a15f64cd9: Pulling fs layer +e12aed2e1874: Pulling fs layer +4b4ce96f6770: Pulling fs layer +f9660a89fb09: Pulling fs layer +ef86da65f6f8: Waiting +04a6b6e92a44: Waiting +25e42a5d110d: Waiting +06b2c9a2dfdd: Waiting +b3b5842693b5: Waiting +355a15f64cd9: Waiting +e12aed2e1874: Waiting +4b4ce96f6770: Waiting +f9660a89fb09: Waiting +17a1f8ed7bac: Verifying Checksum +17a1f8ed7bac: Download complete +ef86da65f6f8: Download complete +c549ccf8d472: Verifying Checksum +c549ccf8d472: Download complete +24b1ce98fe2c: Verifying Checksum +24b1ce98fe2c: Download complete +25e42a5d110d: Verifying Checksum +25e42a5d110d: Download complete +06b2c9a2dfdd: Verifying Checksum +06b2c9a2dfdd: Download complete +b3b5842693b5: Verifying Checksum +b3b5842693b5: Download complete +355a15f64cd9: Verifying Checksum +355a15f64cd9: Download complete +04a6b6e92a44: Verifying Checksum +04a6b6e92a44: Download complete +f9660a89fb09: Verifying Checksum +f9660a89fb09: Download complete +e12aed2e1874: Verifying Checksum +e12aed2e1874: Download complete +4b4ce96f6770: Verifying Checksum +4b4ce96f6770: Download complete +c549ccf8d472: Pull complete +24b1ce98fe2c: Pull complete +17a1f8ed7bac: Pull complete +ef86da65f6f8: Pull complete +04a6b6e92a44: Pull complete +25e42a5d110d: Pull complete +06b2c9a2dfdd: Pull complete +b3b5842693b5: Pull complete +355a15f64cd9: Pull complete +e12aed2e1874: Pull complete +4b4ce96f6770: Pull complete +f9660a89fb09: Pull complete +Digest: sha256:c06b2f8a2b81ea375cd736ecf610b4850671229e448577e1f587692dff85eca3 +Status: Downloaded newer image for opensourcemano/mon:10 +docker.io/opensourcemano/mon:10 +Pulling opensourcemano/pol:10 docker image +10: Pulling from opensourcemano/pol +c549ccf8d472: Already exists +24b1ce98fe2c: Already exists +d4f1f30a4543: Pulling fs layer +98fdfbece9ca: Pulling fs layer +a63bb2b0c9e7: Pulling fs layer +35c56380d886: Pulling fs layer +d52da327ba85: Pulling fs layer +3847c3f71d7d: Pulling fs layer +faa0c4c7e65f: Pulling fs layer +35130fe55c9d: Pulling fs layer +745b29b6dd7e: Pulling fs layer +3847c3f71d7d: Waiting +faa0c4c7e65f: Waiting +35c56380d886: Waiting +d52da327ba85: Waiting +35130fe55c9d: Waiting +745b29b6dd7e: Waiting +a63bb2b0c9e7: Verifying Checksum +a63bb2b0c9e7: Download complete +d4f1f30a4543: Verifying Checksum +d4f1f30a4543: Download complete +98fdfbece9ca: Verifying Checksum +98fdfbece9ca: Download complete +d4f1f30a4543: Pull complete +35c56380d886: Verifying Checksum +35c56380d886: Download complete +d52da327ba85: Verifying Checksum +d52da327ba85: Download complete +3847c3f71d7d: Verifying Checksum +3847c3f71d7d: Download complete +35130fe55c9d: Verifying Checksum +35130fe55c9d: Download complete +faa0c4c7e65f: Verifying Checksum +faa0c4c7e65f: Download complete +745b29b6dd7e: Verifying Checksum +745b29b6dd7e: Download complete +98fdfbece9ca: Pull complete +a63bb2b0c9e7: Pull complete +35c56380d886: Pull complete +d52da327ba85: Pull complete +3847c3f71d7d: Pull complete +faa0c4c7e65f: Pull complete +35130fe55c9d: Pull complete +745b29b6dd7e: Pull complete +Digest: sha256:258e14b73c0236121b8a8775b122158b60c3934f31c84fd1d2cf4bc4cdc4733d +Status: Downloaded newer image for opensourcemano/pol:10 +docker.io/opensourcemano/pol:10 +Pulling opensourcemano/nbi:10 docker image +10: Pulling from opensourcemano/nbi +25fa05cd42bd: Pulling fs layer +79b82fad1be8: Pulling fs layer +96431a0568cc: Pulling fs layer +4469f60df593: Pulling fs layer +13c463cb29f2: Pulling fs layer +2b191ad5b2e2: Pulling fs layer +da5ef09f49dd: Pulling fs layer +8c0691757a83: Pulling fs layer +823d3d9d067d: Pulling fs layer +2b191ad5b2e2: Waiting +da5ef09f49dd: Waiting +8c0691757a83: Waiting +823d3d9d067d: Waiting +4469f60df593: Waiting +13c463cb29f2: Waiting +96431a0568cc: Verifying Checksum +96431a0568cc: Download complete +25fa05cd42bd: Verifying Checksum +25fa05cd42bd: Download complete +13c463cb29f2: Verifying Checksum +13c463cb29f2: Download complete +79b82fad1be8: Verifying Checksum +79b82fad1be8: Download complete +4469f60df593: Verifying Checksum +4469f60df593: Download complete +2b191ad5b2e2: Verifying Checksum +2b191ad5b2e2: Download complete +da5ef09f49dd: Verifying Checksum +da5ef09f49dd: Download complete +8c0691757a83: Verifying Checksum +8c0691757a83: Download complete +823d3d9d067d: Verifying Checksum +823d3d9d067d: Download complete +25fa05cd42bd: Pull complete +79b82fad1be8: Pull complete +96431a0568cc: Pull complete +4469f60df593: Pull complete +13c463cb29f2: Pull complete +2b191ad5b2e2: Pull complete +da5ef09f49dd: Pull complete +8c0691757a83: Pull complete +823d3d9d067d: Pull complete +Digest: sha256:81acf9b529479b8f3791321df5e4e888489254f94971dba8c5c7982f14448c53 +Status: Downloaded newer image for opensourcemano/nbi:10 +docker.io/opensourcemano/nbi:10 +Pulling opensourcemano/keystone:10 docker image +10: Pulling from opensourcemano/keystone +61e03ba1d414: Pulling fs layer +4afb39f216bd: Pulling fs layer +e489abdc9f90: Pulling fs layer +999fff7bcc24: Pulling fs layer +b15ac7627c4a: Pulling fs layer +56182eb8fb75: Pulling fs layer +999fff7bcc24: Waiting +b15ac7627c4a: Waiting +6a8ed178545d: Pulling fs layer +56182eb8fb75: Waiting +6a8ed178545d: Waiting +e489abdc9f90: Verifying Checksum +e489abdc9f90: Download complete +4afb39f216bd: Verifying Checksum +4afb39f216bd: Download complete +999fff7bcc24: Verifying Checksum +999fff7bcc24: Download complete +b15ac7627c4a: Verifying Checksum +b15ac7627c4a: Download complete +56182eb8fb75: Verifying Checksum +56182eb8fb75: Download complete +61e03ba1d414: Verifying Checksum +61e03ba1d414: Download complete +6a8ed178545d: Verifying Checksum +6a8ed178545d: Download complete +61e03ba1d414: Pull complete +4afb39f216bd: Pull complete +e489abdc9f90: Pull complete +999fff7bcc24: Pull complete +b15ac7627c4a: Pull complete +56182eb8fb75: Pull complete +6a8ed178545d: Pull complete +Digest: sha256:e204b544882350e30d3f09dc0bf7de817294896415315c850d6fdb5e9b32576e +Status: Downloaded newer image for opensourcemano/keystone:10 +docker.io/opensourcemano/keystone:10 +Pulling opensourcemano/ro:10 docker image +10: Pulling from opensourcemano/ro +25fa05cd42bd: Already exists +79b82fad1be8: Already exists +d2159c280060: Pulling fs layer +f9cb520b2003: Pulling fs layer +8c6e0c57135a: Pulling fs layer +6e674e0ff67f: Pulling fs layer +6e674e0ff67f: Waiting +8c6e0c57135a: Verifying Checksum +8c6e0c57135a: Download complete +d2159c280060: Verifying Checksum +d2159c280060: Download complete +6e674e0ff67f: Verifying Checksum +6e674e0ff67f: Download complete +d2159c280060: Pull complete +f9cb520b2003: Verifying Checksum +f9cb520b2003: Download complete +f9cb520b2003: Pull complete +8c6e0c57135a: Pull complete +6e674e0ff67f: Pull complete +Digest: sha256:340d9491692fe11d65e32ef10c224636acdb4dfc20b7222c682fd7084dc53375 +Status: Downloaded newer image for opensourcemano/ro:10 +docker.io/opensourcemano/ro:10 +Pulling opensourcemano/lcm:10 docker image +10: Pulling from opensourcemano/lcm +25fa05cd42bd: Already exists +79b82fad1be8: Already exists +fbf7a10e9df7: Pulling fs layer +7a3694938e7e: Pulling fs layer +eca3a26fd648: Pulling fs layer +db0ea8046578: Pulling fs layer +ede9fdd64d0c: Pulling fs layer +a0d53757f978: Pulling fs layer +63d2e86f6d2a: Pulling fs layer +5e1fea429abe: Pulling fs layer +1a9eb93b9672: Pulling fs layer +95e2fe1e01d4: Pulling fs layer +1361214bf256: Pulling fs layer +db0ea8046578: Waiting +ede9fdd64d0c: Waiting +a0d53757f978: Waiting +63d2e86f6d2a: Waiting +5e1fea429abe: Waiting +1a9eb93b9672: Waiting +95e2fe1e01d4: Waiting +1361214bf256: Waiting +fbf7a10e9df7: Verifying Checksum +fbf7a10e9df7: Download complete +7a3694938e7e: Verifying Checksum +7a3694938e7e: Download complete +fbf7a10e9df7: Pull complete +eca3a26fd648: Verifying Checksum +eca3a26fd648: Download complete +ede9fdd64d0c: Verifying Checksum +ede9fdd64d0c: Download complete +db0ea8046578: Verifying Checksum +db0ea8046578: Download complete +7a3694938e7e: Pull complete +63d2e86f6d2a: Verifying Checksum +63d2e86f6d2a: Download complete +5e1fea429abe: Verifying Checksum +5e1fea429abe: Download complete +a0d53757f978: Verifying Checksum +a0d53757f978: Download complete +1a9eb93b9672: Verifying Checksum +1a9eb93b9672: Download complete +1361214bf256: Verifying Checksum +1361214bf256: Download complete +95e2fe1e01d4: Verifying Checksum +95e2fe1e01d4: Download complete +eca3a26fd648: Pull complete +db0ea8046578: Pull complete +ede9fdd64d0c: Pull complete +a0d53757f978: Pull complete +63d2e86f6d2a: Pull complete +5e1fea429abe: Pull complete +1a9eb93b9672: Pull complete +95e2fe1e01d4: Pull complete +1361214bf256: Pull complete +Digest: sha256:a5af752ffe1ae236f5ed7375197018b2fa36b6b2db78aee84e808289c72cbf4d +Status: Downloaded newer image for opensourcemano/lcm:10 +docker.io/opensourcemano/lcm:10 +Pulling opensourcemano/ng-ui:10 docker image +10: Pulling from opensourcemano/ng-ui +25fa05cd42bd: Already exists +6f9d5f011911: Pulling fs layer +ada8c666ede4: Pulling fs layer +0ee405664154: Pulling fs layer +d8388c5773a1: Pulling fs layer +9926096aff79: Pulling fs layer +750b17a20144: Pulling fs layer +2a615abe7a84: Pulling fs layer +9995f9a156ff: Pulling fs layer +ac2b2be25d64: Pulling fs layer +d8388c5773a1: Waiting +9926096aff79: Waiting +750b17a20144: Waiting +2a615abe7a84: Waiting +9995f9a156ff: Waiting +ac2b2be25d64: Waiting +0ee405664154: Verifying Checksum +0ee405664154: Download complete +d8388c5773a1: Verifying Checksum +d8388c5773a1: Download complete +ada8c666ede4: Verifying Checksum +ada8c666ede4: Download complete +750b17a20144: Verifying Checksum +750b17a20144: Download complete +2a615abe7a84: Verifying Checksum +2a615abe7a84: Download complete +6f9d5f011911: Verifying Checksum +6f9d5f011911: Download complete +9995f9a156ff: Verifying Checksum +9995f9a156ff: Download complete +ac2b2be25d64: Verifying Checksum +ac2b2be25d64: Download complete +9926096aff79: Verifying Checksum +9926096aff79: Download complete +6f9d5f011911: Pull complete +ada8c666ede4: Pull complete +0ee405664154: Pull complete +d8388c5773a1: Pull complete +9926096aff79: Pull complete +750b17a20144: Pull complete +2a615abe7a84: Pull complete +9995f9a156ff: Pull complete +ac2b2be25d64: Pull complete +Digest: sha256:bc2f5888f0c9c07f640c538cbbe271ad51fe76430891be6229a41b350ea46393 +Status: Downloaded newer image for opensourcemano/ng-ui:10 +docker.io/opensourcemano/ng-ui:10 +Pulling opensourcemano/osmclient:10 docker image +10: Pulling from opensourcemano/osmclient +25fa05cd42bd: Already exists +79b82fad1be8: Already exists +4671b9843696: Pulling fs layer +347013c6ea3b: Pulling fs layer +4671b9843696: Verifying Checksum +4671b9843696: Download complete +347013c6ea3b: Verifying Checksum +347013c6ea3b: Download complete +4671b9843696: Pull complete +347013c6ea3b: Pull complete +Digest: sha256:0208ef396ded50b6f3216af2f0e88aad0b1df5bf8079f7f43ef712fb6bf74134 +Status: Downloaded newer image for opensourcemano/osmclient:10 +docker.io/opensourcemano/osmclient:10 +Finished pulling and generating docker images +Doing a backup of existing env files +cp: cannot stat '/etc/osm/docker/keystone-db.env': No such file or directory +cp: cannot stat '/etc/osm/docker/keystone.env': No such file or directory +cp: cannot stat '/etc/osm/docker/lcm.env': No such file or directory +cp: cannot stat '/etc/osm/docker/mon.env': No such file or directory +cp: cannot stat '/etc/osm/docker/nbi.env': No such file or directory +cp: cannot stat '/etc/osm/docker/pol.env': No such file or directory +cp: cannot stat '/etc/osm/docker/ro-db.env': No such file or directory +cp: cannot stat '/etc/osm/docker/ro.env': No such file or directory +Generating docker env files +OSMLCM_DATABASE_COMMONKEY=uy2O3WAplXL00VBmKKS0ZsU2U1aFUsEh +OSMLCM_VCA_HOST=192.168.64.19 +OSMLCM_VCA_SECRET=c19fc42556d3564c762ad1c4bfd6af89 +OSMLCM_VCA_PUBKEY=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoXJJP6MedQTolqTBaG8kQowozswo07M0tQrgS8GWp1uzPQ7eGwKGaElnserlws9d/lWmOk4M65RM8U5qiK2Q5oLgUoc131B0pl5DBFOPRbdD4/EHSjJ1KhzBSLE/rm9+InMYQ6I7XeXjMWpT5yclEKN3TYBMY0mwg/Z5LmluduD/zmVIvVo512/TXWR2rXCVTvmxz/fHBd2AbK2zBFjOdAbMZ1P9gLgfaTw5tid5tc2KzoTEjGDX94/rOXe3d8soQbl8oyjdueynyPlwuQ1z9wqB5ez2rQCboC/8XmYpdRHvS1bqiyeh3HmEBU88xFs7TiuJRlPYENmjELXO/Caox juju-client-key +OSMLCM_VCA_CACERT=LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQ5RENDQWx5Z0F3SUJBZ0lWQUpxMjMwWm1WeVQwNHFaTy95SzVwZGtHTS9XWE1BMEdDU3FHU0liM0RRRUIKQ3dVQU1DRXhEVEFMQmdOVkJBb1RCRXAxYW5VeEVEQU9CZ05WQkFNVEIycDFhblV0WTJFd0hoY05NakV3T1RBMgpNVGd5TWpNd1doY05NekV3T1RBMk1UZ3lOek13V2pBaE1RMHdDd1lEVlFRS0V3UktkV3AxTVJBd0RnWURWUVFECkV3ZHFkV3AxTFdOaE1JSUJvakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBWThBTUlJQmlnS0NBWUVBMHF6clJKaUIKcUx6eXZWYTZvUzhnRnhEcCtCTWVUbGFnRnBnQ2lHZk1kajdER0JlTTBxWHVhNWdxdlFORGtTQW5XNnRYOTRqNAo5RlIxR3hyS2RQZlkvZDJuN25YMmpneEd2Y2pwR1oxbFNwcWVZZ2dsMW9PWVBsZEdFdnd4QUE3OVYzaTB4QkxSCmdUYzh5dGRLRzlueFMrUk9UanQ4WVgrbzR0S2c5Mm9mOUg1eU1pV2loZjN5bmU4dGhlMVprNGl6OGFkVTd3Q1AKQUJNa1VEVzhTckhBT3JwdVdmQnNTcFhncW5pblJ1Si9rYkEwVDZBMm9sbkFMNWN3Z1V3OWZUeCtwWWJsbUhNdQpyanZsbmhraXNNSy9iZ1dNSURBem9odHVJZEx4N3RrOCswOHVjWGYxdmhsQkJmMmQzY3djTnVnaDZua3pkeFBHCm9qcUpQMVVxUWs0ZEFNSUNsKzRhODlRb2VuN0ZUbm5ab1JRc05aWS9ZYzJKaXBDU2RPQ3V1ZHJqMlNIdnBRazMKMGNISURMeXVOeWk4TzRpSnBHS2RqeWVUKzNydC9RTDFFMUo1Q1FiTEU3TUJZM2E5Uk9xb25aTTFVMEpaZW1oZgpHdHdqYmFzUzZUNU84d0dFZ09taitWVGpYbW0ydGxvNUw3YmFsR2RaNXRYcHVRd3lHR1VxYzBmTkFnTUJBQUdqCkl6QWhNQTRHQTFVZER3RUIvd1FFQXdJQ3BEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUIKQ3dVQUE0SUJnUUFYcHVQTVJ4ZVZuTXZKbGVmbHNnVWxqV2NqRGxObkNHWXV6Q0crRUlxVjBzeU53cXZzbDBwRwpUVXh4bUhUeUlhaHRzR0FRcEFrSXd3YjlvaHJSWk92WDhBWk9lOXEvZlJiMWtaS0VTc3IyNzIvOFVTenlOTGIzCnBtV0RvYmF3dlB5VVJXZFdlWjNUMXEwTklpL2R1VmxiLyszazgyVS9ZWVk4ZFYwQ3FNZkhDa0xiYU9QSENCRkcKSTJKTmNLTkgrbzlJZXVLOW5ubVRrbURTNUZSUlNUc2ZyWTA1ZmlVUGhjS3dNU0xkcERiL1ZtM2Rydlk1QU4yRApvNkRSR1JzK3Y4dkJYbU1taURtZFlHVzVrNUVyd1RpSzVUemtnQ1dMNUhWSE11azBJei9VNEkrL1owNGxPTjhMCmg3azVmZ2diVHQ3ZGJoKzczaStTbkRyRW5FRkMrR25sQ05pVmRVeDlPVkFCNDJsOWllckpwcHU2c2l0V0tZQkEKSUZpKzdVSEFOaHR4WEtnOE13b2lnY1Z0dklmK0ZranpERjFkbjl2aTRuWGQyS0R3N3A1TTMwRlN3d0sya291eQorMXY1VXVLd2dPa1ZMYUYxakhXcUZNb0ozdko2VmxxWmpnWFVtcHgrVHl2YmpTR3RUZUl0YTNubVlWdHBEV3pBCi9kTlpHcUpDK01FPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCgo= +# OSMLCM_VCA_ENABLEOSUPGRADE=false +# OSMLCM_VCA_APTMIRROR=http://archive.ubuntu.com/ubuntu/ +OSMLCM_VCA_CLOUD=lxd-cloud +OSMLCM_VCA_K8S_CLOUD=k8scloud +MYSQL_ROOT_PASSWORD=doKzXq1kJ3f60DNTtgR77tuy6iRqHDDi +RO_DB_ROOT_PASSWORD=doKzXq1kJ3f60DNTtgR77tuy6iRqHDDi +OSMRO_DATABASE_COMMONKEY=uy2O3WAplXL00VBmKKS0ZsU2U1aFUsEh +MYSQL_ROOT_PASSWORD=doKzXq1kJ3f60DNTtgR77tuy6iRqHDDi +ROOT_DB_PASSWORD=doKzXq1kJ3f60DNTtgR77tuy6iRqHDDi +KEYSTONE_DB_PASSWORD=FYnqJhGn6yLi0SDbA4aaJ2gW5TQfhj0r +SERVICE_PASSWORD=weyQ7wnHtlOo4K0UuUriYPPTrGUexZ82 +OSMNBI_AUTHENTICATION_SERVICE_PASSWORD=weyQ7wnHtlOo4K0UuUriYPPTrGUexZ82 +OSMNBI_DATABASE_COMMONKEY=uy2O3WAplXL00VBmKKS0ZsU2U1aFUsEh +OSMMON_KEYSTONE_SERVICE_PASSWORD=weyQ7wnHtlOo4K0UuUriYPPTrGUexZ82 +OSMMON_DATABASE_COMMONKEY=uy2O3WAplXL00VBmKKS0ZsU2U1aFUsEh +OSMMON_SQL_DATABASE_URI=mysql://root:doKzXq1kJ3f60DNTtgR77tuy6iRqHDDi@mysql:3306/mon +OS_NOTIFIER_URI=http://192.168.64.19:8662 +OSMMON_VCA_HOST=192.168.64.19 +OSMMON_VCA_SECRET=c19fc42556d3564c762ad1c4bfd6af89 +OSMMON_VCA_CACERT=LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQ5RENDQWx5Z0F3SUJBZ0lWQUpxMjMwWm1WeVQwNHFaTy95SzVwZGtHTS9XWE1BMEdDU3FHU0liM0RRRUIKQ3dVQU1DRXhEVEFMQmdOVkJBb1RCRXAxYW5VeEVEQU9CZ05WQkFNVEIycDFhblV0WTJFd0hoY05NakV3T1RBMgpNVGd5TWpNd1doY05NekV3T1RBMk1UZ3lOek13V2pBaE1RMHdDd1lEVlFRS0V3UktkV3AxTVJBd0RnWURWUVFECkV3ZHFkV3AxTFdOaE1JSUJvakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBWThBTUlJQmlnS0NBWUVBMHF6clJKaUIKcUx6eXZWYTZvUzhnRnhEcCtCTWVUbGFnRnBnQ2lHZk1kajdER0JlTTBxWHVhNWdxdlFORGtTQW5XNnRYOTRqNAo5RlIxR3hyS2RQZlkvZDJuN25YMmpneEd2Y2pwR1oxbFNwcWVZZ2dsMW9PWVBsZEdFdnd4QUE3OVYzaTB4QkxSCmdUYzh5dGRLRzlueFMrUk9UanQ4WVgrbzR0S2c5Mm9mOUg1eU1pV2loZjN5bmU4dGhlMVprNGl6OGFkVTd3Q1AKQUJNa1VEVzhTckhBT3JwdVdmQnNTcFhncW5pblJ1Si9rYkEwVDZBMm9sbkFMNWN3Z1V3OWZUeCtwWWJsbUhNdQpyanZsbmhraXNNSy9iZ1dNSURBem9odHVJZEx4N3RrOCswOHVjWGYxdmhsQkJmMmQzY3djTnVnaDZua3pkeFBHCm9qcUpQMVVxUWs0ZEFNSUNsKzRhODlRb2VuN0ZUbm5ab1JRc05aWS9ZYzJKaXBDU2RPQ3V1ZHJqMlNIdnBRazMKMGNISURMeXVOeWk4TzRpSnBHS2RqeWVUKzNydC9RTDFFMUo1Q1FiTEU3TUJZM2E5Uk9xb25aTTFVMEpaZW1oZgpHdHdqYmFzUzZUNU84d0dFZ09taitWVGpYbW0ydGxvNUw3YmFsR2RaNXRYcHVRd3lHR1VxYzBmTkFnTUJBQUdqCkl6QWhNQTRHQTFVZER3RUIvd1FFQXdJQ3BEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUIKQ3dVQUE0SUJnUUFYcHVQTVJ4ZVZuTXZKbGVmbHNnVWxqV2NqRGxObkNHWXV6Q0crRUlxVjBzeU53cXZzbDBwRwpUVXh4bUhUeUlhaHRzR0FRcEFrSXd3YjlvaHJSWk92WDhBWk9lOXEvZlJiMWtaS0VTc3IyNzIvOFVTenlOTGIzCnBtV0RvYmF3dlB5VVJXZFdlWjNUMXEwTklpL2R1VmxiLyszazgyVS9ZWVk4ZFYwQ3FNZkhDa0xiYU9QSENCRkcKSTJKTmNLTkgrbzlJZXVLOW5ubVRrbURTNUZSUlNUc2ZyWTA1ZmlVUGhjS3dNU0xkcERiL1ZtM2Rydlk1QU4yRApvNkRSR1JzK3Y4dkJYbU1taURtZFlHVzVrNUVyd1RpSzVUemtnQ1dMNUhWSE11azBJei9VNEkrL1owNGxPTjhMCmg3azVmZ2diVHQ3ZGJoKzczaStTbkRyRW5FRkMrR25sQ05pVmRVeDlPVkFCNDJsOWllckpwcHU2c2l0V0tZQkEKSUZpKzdVSEFOaHR4WEtnOE13b2lnY1Z0dklmK0ZranpERjFkbjl2aTRuWGQyS0R3N3A1TTMwRlN3d0sya291eQorMXY1VXVLd2dPa1ZMYUYxakhXcUZNb0ozdko2VmxxWmpnWFVtcHgrVHl2YmpTR3RUZUl0YTNubVlWdHBEV3pBCi9kTlpHcUpDK01FPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCgo= +OSMPOL_SQL_DATABASE_URI=mysql://root:doKzXq1kJ3f60DNTtgR77tuy6iRqHDDi@mysql:3306/pol +Finished generation of docker env files +Added 'osm' model on k8scloud with credential 'k8scloud' for user 'admin' +Located charm "mongodb-k8s" in charm-hub, revision 1 +Deploying "mongodb-k8s" from charm-hub charm "mongodb-k8s", revision 1 in channel stable +Error from server (AlreadyExists): namespaces "osm" already exists +secret/lcm-secret created +secret/mon-secret created +secret/nbi-secret created +secret/ro-db-secret created +secret/ro-secret created +secret/keystone-secret created +secret/pol-secret created +clusterrole.rbac.authorization.k8s.io/grafana-clusterrole created +clusterrolebinding.rbac.authorization.k8s.io/grafana-clusterrolebinding created +secret/grafana created +serviceaccount/grafana created +configmap/grafana-dashboard-provider created +configmap/grafana-datasource created +configmap/grafana created +deployment.apps/grafana created +service/grafana created +service/kafka created +statefulset.apps/kafka created +service/keystone created +deployment.apps/keystone created +deployment.apps/lcm created +service/mon created +deployment.apps/mon created +service/mysql created +statefulset.apps/mysql created +service/nbi created +deployment.apps/nbi created +service/ng-ui created +deployment.apps/ng-ui created +deployment.apps/pol created +service/prometheus created +configmap/prom created +statefulset.apps/prometheus created +service/ro created +deployment.apps/ro created +service/zookeeper created +statefulset.apps/zookeeper created +sed: can't read /etc/osm/docker/osm_pla/pla.yaml: No such file or directory +error: the path "/etc/osm/docker/osm_pla" does not exist + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed + 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 3120 100 3120 0 0 6638 0 --:--:-- --:--:-- --:--:-- 6948 +Warning: apt-key output should not be parsed (stdout is not a terminal) +OK +Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease +Get:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB] +Get:3 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB] +Get:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB] +Hit:5 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:6 https://download.docker.com/linux/ubuntu bionic InRelease +Hit:7 https://packages.cloud.google.com/apt kubernetes-xenial InRelease +Get:8 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/IM amd64 Packages [901 B] +Get:9 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/osmclient amd64 Packages [473 B] +Fetched 253 kB in 6s (41.9 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease +Get:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB] +Hit:3 https://download.docker.com/linux/ubuntu bionic InRelease +Get:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB] +Get:5 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB] +Hit:6 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease +Hit:7 https://packages.cloud.google.com/apt kubernetes-xenial InRelease +Fetched 252 kB in 3s (83.2 kB/s) +Reading package lists... +W: Conflicting distribution: https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable InRelease (expected stable but got ) +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following additional packages will be installed: + binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-7 + dh-python dpkg-dev fakeroot g++ g++-7 gcc gcc-7 gcc-7-base + libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl + libasan4 libatomic1 libbinutils libc-dev-bin libc6-dev libcc1-0 libcilkrts5 + libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-7-dev + libgomp1 libisl19 libitm1 liblsan0 libmpc3 libmpx2 libpython3-dev + libpython3.6-dev libquadmath0 libstdc++-7-dev libtsan0 libubsan0 + linux-libc-dev make manpages-dev python-pip-whl python3-crypto python3-dev + python3-distutils python3-keyring python3-keyrings.alt python3-lib2to3 + python3-secretstorage python3-setuptools python3-wheel python3-xdg + python3.6-dev +Suggested packages: + binutils-doc cpp-doc gcc-7-locales debian-keyring g++-multilib + g++-7-multilib gcc-7-doc libstdc++6-7-dbg gcc-multilib autoconf automake + libtool flex bison gdb gcc-doc gcc-7-multilib libgcc1-dbg libgomp1-dbg + libitm1-dbg libatomic1-dbg libasan4-dbg liblsan0-dbg libtsan0-dbg + libubsan0-dbg libcilkrts5-dbg libmpx2-dbg libquadmath0-dbg glibc-doc bzr + libstdc++-7-doc make-doc python-crypto-doc gnome-keyring libkf5wallet-bin + gir1.2-gnomekeyring-1.0 python-secretstorage-doc python-setuptools-doc +The following NEW packages will be installed: + binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-7 + dh-python dpkg-dev fakeroot g++ g++-7 gcc gcc-7 gcc-7-base + libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl + libasan4 libatomic1 libbinutils libc-dev-bin libc6-dev libcc1-0 libcilkrts5 + libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-7-dev + libgomp1 libisl19 libitm1 liblsan0 libmpc3 libmpx2 libpython3-dev + libpython3.6-dev libquadmath0 libstdc++-7-dev libtsan0 libubsan0 + linux-libc-dev make manpages-dev python-pip-whl python3-crypto python3-dev + python3-distutils python3-keyring python3-keyrings.alt python3-lib2to3 + python3-pip python3-secretstorage python3-setuptools python3-wheel + python3-xdg python3.6-dev +0 upgraded, 57 newly installed, 0 to remove and 7 not upgraded. +Need to get 91.2 MB of archives. +After this operation, 253 MB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils-common amd64 2.30-21ubuntu1~18.04.5 [197 kB] +Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libbinutils amd64 2.30-21ubuntu1~18.04.5 [489 kB] +Get:3 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.30-21ubuntu1~18.04.5 [1839 kB] +Get:4 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils amd64 2.30-21ubuntu1~18.04.5 [3388 B] +Get:5 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libc-dev-bin amd64 2.27-3ubuntu1.4 [71.8 kB] +Get:6 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 linux-libc-dev amd64 4.15.0-154.161 [988 kB] +Get:7 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libc6-dev amd64 2.27-3ubuntu1.4 [2585 kB] +Get:8 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc-7-base amd64 7.5.0-3ubuntu1~18.04 [18.3 kB] +Get:9 http://archive.ubuntu.com/ubuntu bionic/main amd64 libisl19 amd64 0.19-1 [551 kB] +Get:10 http://archive.ubuntu.com/ubuntu bionic/main amd64 libmpc3 amd64 1.1.0-1 [40.8 kB] +Get:11 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 cpp-7 amd64 7.5.0-3ubuntu1~18.04 [8591 kB] +Get:12 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 cpp amd64 4:7.4.0-1ubuntu2.3 [27.7 kB] +Get:13 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libcc1-0 amd64 8.4.0-1ubuntu1~18.04 [39.4 kB] +Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgomp1 amd64 8.4.0-1ubuntu1~18.04 [76.5 kB] +Get:15 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libitm1 amd64 8.4.0-1ubuntu1~18.04 [27.9 kB] +Get:16 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libatomic1 amd64 8.4.0-1ubuntu1~18.04 [9192 B] +Get:17 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libasan4 amd64 7.5.0-3ubuntu1~18.04 [358 kB] +Get:18 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 liblsan0 amd64 8.4.0-1ubuntu1~18.04 [133 kB] +Get:19 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libtsan0 amd64 8.4.0-1ubuntu1~18.04 [288 kB] +Get:20 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libubsan0 amd64 7.5.0-3ubuntu1~18.04 [126 kB] +Get:21 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libcilkrts5 amd64 7.5.0-3ubuntu1~18.04 [42.5 kB] +Get:22 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libmpx2 amd64 8.4.0-1ubuntu1~18.04 [11.6 kB] +Get:23 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libquadmath0 amd64 8.4.0-1ubuntu1~18.04 [134 kB] +Get:24 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgcc-7-dev amd64 7.5.0-3ubuntu1~18.04 [2378 kB] +Get:25 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc-7 amd64 7.5.0-3ubuntu1~18.04 [9381 kB] +Get:26 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc amd64 4:7.4.0-1ubuntu2.3 [5184 B] +Get:27 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libstdc++-7-dev amd64 7.5.0-3ubuntu1~18.04 [1471 kB] +Get:28 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 g++-7 amd64 7.5.0-3ubuntu1~18.04 [9697 kB] +Get:29 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 g++ amd64 4:7.4.0-1ubuntu2.3 [1568 B] +Get:30 http://archive.ubuntu.com/ubuntu bionic/main amd64 make amd64 4.1-9.1ubuntu1 [154 kB] +Get:31 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libdpkg-perl all 1.19.0.5ubuntu2.3 [211 kB] +Get:32 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 dpkg-dev all 1.19.0.5ubuntu2.3 [607 kB] +Get:33 http://archive.ubuntu.com/ubuntu bionic/main amd64 build-essential amd64 12.4ubuntu1 [4758 B] +Get:34 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-lib2to3 all 3.6.9-1~18.04 [77.4 kB] +Get:35 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-distutils all 3.6.9-1~18.04 [144 kB] +Get:36 http://archive.ubuntu.com/ubuntu bionic/main amd64 dh-python all 3.20180325ubuntu2 [89.2 kB] +Get:37 http://archive.ubuntu.com/ubuntu bionic/main amd64 libfakeroot amd64 1.22-2ubuntu1 [25.9 kB] +Get:38 http://archive.ubuntu.com/ubuntu bionic/main amd64 fakeroot amd64 1.22-2ubuntu1 [62.3 kB] +Get:39 http://archive.ubuntu.com/ubuntu bionic/main amd64 libalgorithm-diff-perl all 1.19.03-1 [47.6 kB] +Get:40 http://archive.ubuntu.com/ubuntu bionic/main amd64 libalgorithm-diff-xs-perl amd64 0.04-5 [11.1 kB] +Get:41 http://archive.ubuntu.com/ubuntu bionic/main amd64 libalgorithm-merge-perl all 0.08-3 [12.0 kB] +Get:42 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libexpat1-dev amd64 2.2.5-3ubuntu0.2 [122 kB] +Get:43 http://archive.ubuntu.com/ubuntu bionic/main amd64 libfile-fcntllock-perl amd64 0.22-3build2 [33.2 kB] +Get:44 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libpython3.6-dev amd64 3.6.9-1~18.04ubuntu1.4 [44.9 MB] +Get:45 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libpython3-dev amd64 3.6.7-1~18.04 [7328 B] +Get:46 http://archive.ubuntu.com/ubuntu bionic/main amd64 manpages-dev all 4.15-1 [2217 kB] +Get:47 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 python-pip-whl all 9.0.1-2.3~ubuntu1.18.04.5 [1653 kB] +Get:48 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-crypto amd64 2.6.1-8ubuntu2 [244 kB] +Get:49 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3.6-dev amd64 3.6.9-1~18.04ubuntu1.4 [508 kB] +Get:50 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-dev amd64 3.6.7-1~18.04 [1288 B] +Get:51 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-secretstorage all 2.3.1-2 [12.1 kB] +Get:52 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-keyring all 10.6.0-1 [26.7 kB] +Get:53 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-keyrings.alt all 3.0-1 [16.6 kB] +Get:54 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 python3-pip all 9.0.1-2.3~ubuntu1.18.04.5 [114 kB] +Get:55 http://archive.ubuntu.com/ubuntu bionic/main amd64 python3-setuptools all 39.0.1-2 [248 kB] +Get:56 http://archive.ubuntu.com/ubuntu bionic/universe amd64 python3-wheel all 0.30.0-0.2 [36.5 kB] +Get:57 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python3-xdg all 0.25-4ubuntu1.1 [31.3 kB] +Fetched 91.2 MB in 9s (10.3 MB/s) +Selecting previously unselected package binutils-common:amd64. +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61768 files and directories currently installed.) +Preparing to unpack .../00-binutils-common_2.30-21ubuntu1~18.04.5_amd64.deb ... +Unpacking binutils-common:amd64 (2.30-21ubuntu1~18.04.5) ... +Selecting previously unselected package libbinutils:amd64. +Preparing to unpack .../01-libbinutils_2.30-21ubuntu1~18.04.5_amd64.deb ... +Unpacking libbinutils:amd64 (2.30-21ubuntu1~18.04.5) ... +Selecting previously unselected package binutils-x86-64-linux-gnu. +Preparing to unpack .../02-binutils-x86-64-linux-gnu_2.30-21ubuntu1~18.04.5_amd64.deb ... +Unpacking binutils-x86-64-linux-gnu (2.30-21ubuntu1~18.04.5) ... +Selecting previously unselected package binutils. +Preparing to unpack .../03-binutils_2.30-21ubuntu1~18.04.5_amd64.deb ... +Unpacking binutils (2.30-21ubuntu1~18.04.5) ... +Selecting previously unselected package libc-dev-bin. +Preparing to unpack .../04-libc-dev-bin_2.27-3ubuntu1.4_amd64.deb ... +Unpacking libc-dev-bin (2.27-3ubuntu1.4) ... +Selecting previously unselected package linux-libc-dev:amd64. +Preparing to unpack .../05-linux-libc-dev_4.15.0-154.161_amd64.deb ... +Unpacking linux-libc-dev:amd64 (4.15.0-154.161) ... +Selecting previously unselected package libc6-dev:amd64. +Preparing to unpack .../06-libc6-dev_2.27-3ubuntu1.4_amd64.deb ... +Unpacking libc6-dev:amd64 (2.27-3ubuntu1.4) ... +Selecting previously unselected package gcc-7-base:amd64. +Preparing to unpack .../07-gcc-7-base_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking gcc-7-base:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package libisl19:amd64. +Preparing to unpack .../08-libisl19_0.19-1_amd64.deb ... +Unpacking libisl19:amd64 (0.19-1) ... +Selecting previously unselected package libmpc3:amd64. +Preparing to unpack .../09-libmpc3_1.1.0-1_amd64.deb ... +Unpacking libmpc3:amd64 (1.1.0-1) ... +Selecting previously unselected package cpp-7. +Preparing to unpack .../10-cpp-7_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking cpp-7 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package cpp. +Preparing to unpack .../11-cpp_4%3a7.4.0-1ubuntu2.3_amd64.deb ... +Unpacking cpp (4:7.4.0-1ubuntu2.3) ... +Selecting previously unselected package libcc1-0:amd64. +Preparing to unpack .../12-libcc1-0_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libcc1-0:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libgomp1:amd64. +Preparing to unpack .../13-libgomp1_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libgomp1:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libitm1:amd64. +Preparing to unpack .../14-libitm1_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libitm1:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libatomic1:amd64. +Preparing to unpack .../15-libatomic1_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libatomic1:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libasan4:amd64. +Preparing to unpack .../16-libasan4_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libasan4:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package liblsan0:amd64. +Preparing to unpack .../17-liblsan0_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking liblsan0:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libtsan0:amd64. +Preparing to unpack .../18-libtsan0_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libtsan0:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libubsan0:amd64. +Preparing to unpack .../19-libubsan0_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libubsan0:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package libcilkrts5:amd64. +Preparing to unpack .../20-libcilkrts5_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libcilkrts5:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package libmpx2:amd64. +Preparing to unpack .../21-libmpx2_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libmpx2:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libquadmath0:amd64. +Preparing to unpack .../22-libquadmath0_8.4.0-1ubuntu1~18.04_amd64.deb ... +Unpacking libquadmath0:amd64 (8.4.0-1ubuntu1~18.04) ... +Selecting previously unselected package libgcc-7-dev:amd64. +Preparing to unpack .../23-libgcc-7-dev_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libgcc-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package gcc-7. +Preparing to unpack .../24-gcc-7_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking gcc-7 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package gcc. +Preparing to unpack .../25-gcc_4%3a7.4.0-1ubuntu2.3_amd64.deb ... +Unpacking gcc (4:7.4.0-1ubuntu2.3) ... +Selecting previously unselected package libstdc++-7-dev:amd64. +Preparing to unpack .../26-libstdc++-7-dev_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking libstdc++-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package g++-7. +Preparing to unpack .../27-g++-7_7.5.0-3ubuntu1~18.04_amd64.deb ... +Unpacking g++-7 (7.5.0-3ubuntu1~18.04) ... +Selecting previously unselected package g++. +Preparing to unpack .../28-g++_4%3a7.4.0-1ubuntu2.3_amd64.deb ... +Unpacking g++ (4:7.4.0-1ubuntu2.3) ... +Selecting previously unselected package make. +Preparing to unpack .../29-make_4.1-9.1ubuntu1_amd64.deb ... +Unpacking make (4.1-9.1ubuntu1) ... +Selecting previously unselected package libdpkg-perl. +Preparing to unpack .../30-libdpkg-perl_1.19.0.5ubuntu2.3_all.deb ... +Unpacking libdpkg-perl (1.19.0.5ubuntu2.3) ... +Selecting previously unselected package dpkg-dev. +Preparing to unpack .../31-dpkg-dev_1.19.0.5ubuntu2.3_all.deb ... +Unpacking dpkg-dev (1.19.0.5ubuntu2.3) ... +Selecting previously unselected package build-essential. +Preparing to unpack .../32-build-essential_12.4ubuntu1_amd64.deb ... +Unpacking build-essential (12.4ubuntu1) ... +Selecting previously unselected package python3-lib2to3. +Preparing to unpack .../33-python3-lib2to3_3.6.9-1~18.04_all.deb ... +Unpacking python3-lib2to3 (3.6.9-1~18.04) ... +Selecting previously unselected package python3-distutils. +Preparing to unpack .../34-python3-distutils_3.6.9-1~18.04_all.deb ... +Unpacking python3-distutils (3.6.9-1~18.04) ... +Selecting previously unselected package dh-python. +Preparing to unpack .../35-dh-python_3.20180325ubuntu2_all.deb ... +Unpacking dh-python (3.20180325ubuntu2) ... +Selecting previously unselected package libfakeroot:amd64. +Preparing to unpack .../36-libfakeroot_1.22-2ubuntu1_amd64.deb ... +Unpacking libfakeroot:amd64 (1.22-2ubuntu1) ... +Selecting previously unselected package fakeroot. +Preparing to unpack .../37-fakeroot_1.22-2ubuntu1_amd64.deb ... +Unpacking fakeroot (1.22-2ubuntu1) ... +Selecting previously unselected package libalgorithm-diff-perl. +Preparing to unpack .../38-libalgorithm-diff-perl_1.19.03-1_all.deb ... +Unpacking libalgorithm-diff-perl (1.19.03-1) ... +Selecting previously unselected package libalgorithm-diff-xs-perl. +Preparing to unpack .../39-libalgorithm-diff-xs-perl_0.04-5_amd64.deb ... +Unpacking libalgorithm-diff-xs-perl (0.04-5) ... +Selecting previously unselected package libalgorithm-merge-perl. +Preparing to unpack .../40-libalgorithm-merge-perl_0.08-3_all.deb ... +Unpacking libalgorithm-merge-perl (0.08-3) ... +Selecting previously unselected package libexpat1-dev:amd64. +Preparing to unpack .../41-libexpat1-dev_2.2.5-3ubuntu0.2_amd64.deb ... +Unpacking libexpat1-dev:amd64 (2.2.5-3ubuntu0.2) ... +Selecting previously unselected package libfile-fcntllock-perl. +Preparing to unpack .../42-libfile-fcntllock-perl_0.22-3build2_amd64.deb ... +Unpacking libfile-fcntllock-perl (0.22-3build2) ... +Selecting previously unselected package libpython3.6-dev:amd64. +Preparing to unpack .../43-libpython3.6-dev_3.6.9-1~18.04ubuntu1.4_amd64.deb ... +Unpacking libpython3.6-dev:amd64 (3.6.9-1~18.04ubuntu1.4) ... +Selecting previously unselected package libpython3-dev:amd64. +Preparing to unpack .../44-libpython3-dev_3.6.7-1~18.04_amd64.deb ... +Unpacking libpython3-dev:amd64 (3.6.7-1~18.04) ... +Selecting previously unselected package manpages-dev. +Preparing to unpack .../45-manpages-dev_4.15-1_all.deb ... +Unpacking manpages-dev (4.15-1) ... +Selecting previously unselected package python-pip-whl. +Preparing to unpack .../46-python-pip-whl_9.0.1-2.3~ubuntu1.18.04.5_all.deb ... +Unpacking python-pip-whl (9.0.1-2.3~ubuntu1.18.04.5) ... +Selecting previously unselected package python3-crypto. +Preparing to unpack .../47-python3-crypto_2.6.1-8ubuntu2_amd64.deb ... +Unpacking python3-crypto (2.6.1-8ubuntu2) ... +Selecting previously unselected package python3.6-dev. +Preparing to unpack .../48-python3.6-dev_3.6.9-1~18.04ubuntu1.4_amd64.deb ... +Unpacking python3.6-dev (3.6.9-1~18.04ubuntu1.4) ... +Selecting previously unselected package python3-dev. +Preparing to unpack .../49-python3-dev_3.6.7-1~18.04_amd64.deb ... +Unpacking python3-dev (3.6.7-1~18.04) ... +Selecting previously unselected package python3-secretstorage. +Preparing to unpack .../50-python3-secretstorage_2.3.1-2_all.deb ... +Unpacking python3-secretstorage (2.3.1-2) ... +Selecting previously unselected package python3-keyring. +Preparing to unpack .../51-python3-keyring_10.6.0-1_all.deb ... +Unpacking python3-keyring (10.6.0-1) ... +Selecting previously unselected package python3-keyrings.alt. +Preparing to unpack .../52-python3-keyrings.alt_3.0-1_all.deb ... +Unpacking python3-keyrings.alt (3.0-1) ... +Selecting previously unselected package python3-pip. +Preparing to unpack .../53-python3-pip_9.0.1-2.3~ubuntu1.18.04.5_all.deb ... +Unpacking python3-pip (9.0.1-2.3~ubuntu1.18.04.5) ... +Selecting previously unselected package python3-setuptools. +Preparing to unpack .../54-python3-setuptools_39.0.1-2_all.deb ... +Unpacking python3-setuptools (39.0.1-2) ... +Selecting previously unselected package python3-wheel. +Preparing to unpack .../55-python3-wheel_0.30.0-0.2_all.deb ... +Unpacking python3-wheel (0.30.0-0.2) ... +Selecting previously unselected package python3-xdg. +Preparing to unpack .../56-python3-xdg_0.25-4ubuntu1.1_all.deb ... +Unpacking python3-xdg (0.25-4ubuntu1.1) ... +Setting up libquadmath0:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up libgomp1:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up libatomic1:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up python-pip-whl (9.0.1-2.3~ubuntu1.18.04.5) ... +Setting up libcc1-0:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up make (4.1-9.1ubuntu1) ... +Setting up python3-crypto (2.6.1-8ubuntu2) ... +Setting up libtsan0:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up python3-xdg (0.25-4ubuntu1.1) ... +Setting up python3-keyrings.alt (3.0-1) ... +Setting up linux-libc-dev:amd64 (4.15.0-154.161) ... +Setting up libdpkg-perl (1.19.0.5ubuntu2.3) ... +Setting up python3-wheel (0.30.0-0.2) ... +Setting up liblsan0:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up gcc-7-base:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up binutils-common:amd64 (2.30-21ubuntu1~18.04.5) ... +Setting up libfile-fcntllock-perl (0.22-3build2) ... +Setting up libmpx2:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up libfakeroot:amd64 (1.22-2ubuntu1) ... +Setting up libalgorithm-diff-perl (1.19.03-1) ... +Setting up libmpc3:amd64 (1.1.0-1) ... +Setting up libc-dev-bin (2.27-3ubuntu1.4) ... +Setting up python3-lib2to3 (3.6.9-1~18.04) ... +Setting up python3-secretstorage (2.3.1-2) ... +Setting up manpages-dev (4.15-1) ... +Setting up libc6-dev:amd64 (2.27-3ubuntu1.4) ... +Setting up python3-distutils (3.6.9-1~18.04) ... +Setting up libitm1:amd64 (8.4.0-1ubuntu1~18.04) ... +Setting up libisl19:amd64 (0.19-1) ... +Setting up libasan4:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up python3-keyring (10.6.0-1) ... +Setting up libbinutils:amd64 (2.30-21ubuntu1~18.04.5) ... +Setting up libcilkrts5:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up libubsan0:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up fakeroot (1.22-2ubuntu1) ... +update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode +Setting up libgcc-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up cpp-7 (7.5.0-3ubuntu1~18.04) ... +Setting up libstdc++-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ... +Setting up libalgorithm-merge-perl (0.08-3) ... +Setting up libalgorithm-diff-xs-perl (0.04-5) ... +Setting up python3-pip (9.0.1-2.3~ubuntu1.18.04.5) ... +Setting up libexpat1-dev:amd64 (2.2.5-3ubuntu0.2) ... +Setting up python3-setuptools (39.0.1-2) ... +Setting up dh-python (3.20180325ubuntu2) ... +Setting up binutils-x86-64-linux-gnu (2.30-21ubuntu1~18.04.5) ... +Setting up cpp (4:7.4.0-1ubuntu2.3) ... +Setting up libpython3.6-dev:amd64 (3.6.9-1~18.04ubuntu1.4) ... +Setting up binutils (2.30-21ubuntu1~18.04.5) ... +Setting up python3.6-dev (3.6.9-1~18.04ubuntu1.4) ... +Setting up libpython3-dev:amd64 (3.6.7-1~18.04) ... +Setting up gcc-7 (7.5.0-3ubuntu1~18.04) ... +Setting up g++-7 (7.5.0-3ubuntu1~18.04) ... +Setting up python3-dev (3.6.7-1~18.04) ... +Setting up gcc (4:7.4.0-1ubuntu2.3) ... +Setting up dpkg-dev (1.19.0.5ubuntu2.3) ... +Setting up g++ (4:7.4.0-1ubuntu2.3) ... +update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode +Setting up build-essential (12.4ubuntu1) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... +Processing triggers for libc-bin (2.27-3ubuntu1.4) ... +Collecting pip + Downloading https://files.pythonhosted.org/packages/ca/31/b88ef447d595963c01060998cb329251648acf4a067721b0452c45527eb8/pip-21.2.4-py3-none-any.whl (1.6MB) +Installing collected packages: pip + Found existing installation: pip 9.0.1 + Not uninstalling pip at /usr/lib/python3/dist-packages, outside environment /usr +Successfully installed pip-21.2.4 +Collecting python-magic + Downloading python_magic-0.4.24-py2.py3-none-any.whl (12 kB) +Collecting pyangbind + Downloading pyangbind-0.8.1.tar.gz (48 kB) +Collecting verboselogs + Downloading verboselogs-1.7-py2.py3-none-any.whl (11 kB) +Collecting bitarray + Downloading bitarray-2.3.3.tar.gz (88 kB) +Collecting enum34 + Downloading enum34-1.1.10-py3-none-any.whl (11 kB) +Collecting lxml + Downloading lxml-4.6.3-cp36-cp36m-manylinux2014_x86_64.whl (6.3 MB) +Collecting pyang + Downloading pyang-2.5.0-py2.py3-none-any.whl (595 kB) +Collecting regex + Downloading regex-2021.8.28-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (745 kB) +Requirement already satisfied: six in /usr/lib/python3/dist-packages (from pyangbind) (1.11.0) +Building wheels for collected packages: pyangbind, bitarray + Building wheel for pyangbind (setup.py): started + Building wheel for pyangbind (setup.py): finished with status 'done' + Created wheel for pyangbind: filename=pyangbind-0.8.1-py3-none-any.whl size=49314 sha256=140e4151d21f3d10fcbc56de395aa09b61e47ecbc79aaab999442713ebc53f29 + Stored in directory: /root/.cache/pip/wheels/d7/5f/16/210e82959deac8e57e539448ff940505a957125a521cb2a828 + Building wheel for bitarray (setup.py): started + Building wheel for bitarray (setup.py): finished with status 'done' + Created wheel for bitarray: filename=bitarray-2.3.3-cp36-cp36m-linux_x86_64.whl size=179330 sha256=df311306efa524693e9fba67ad27e40f409dba5a9b154fe251da2534aaab8ed8 + Stored in directory: /root/.cache/pip/wheels/4e/7b/5c/2d301a7bb02c7f8965a161411e8a445315b0be3512f20631ea +Successfully built pyangbind bitarray +Installing collected packages: lxml, regex, pyang, enum34, bitarray, verboselogs, python-magic, pyangbind +Successfully installed bitarray-2.3.3 enum34-1.1.10 lxml-4.6.3 pyang-2.5.0 pyangbind-0.8.1 python-magic-0.4.24 regex-2021.8.28 verboselogs-1.7 +WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +The following NEW packages will be installed: + python3-osm-im python3-osmclient +0 upgraded, 2 newly installed, 0 to remove and 7 not upgraded. +Need to get 248 kB of archives. +After this operation, 8100 kB of additional disk space will be used. +Get:1 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/IM amd64 python3-osm-im all 10.0.1+g8c2165c-1 [186 kB] +Get:2 https://osm-download.etsi.org/repository/osm/debian/ReleaseTEN stable/osmclient amd64 python3-osmclient all 10.0.1+g42e87fa-1 [61.9 kB] +Fetched 248 kB in 0s (575 kB/s) +Selecting previously unselected package python3-osm-im. +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 68374 files and directories currently installed.) +Preparing to unpack .../python3-osm-im_10.0.1+g8c2165c-1_all.deb ... +Unpacking python3-osm-im (10.0.1+g8c2165c-1) ... +Selecting previously unselected package python3-osmclient. +Preparing to unpack .../python3-osmclient_10.0.1+g42e87fa-1_all.deb ... +Unpacking python3-osmclient (10.0.1+g42e87fa-1) ... +Setting up python3-osmclient (10.0.1+g42e87fa-1) ... +Setting up python3-osm-im (10.0.1+g8c2165c-1) ... +Defaulting to user installation because normal site-packages is not writeable +Collecting bitarray==1.8.1 + Downloading bitarray-1.8.1.tar.gz (62 kB) +Requirement already satisfied: enum34==1.1.10 in /usr/local/lib/python3.6/dist-packages (from -r /usr/lib/python3/dist-packages/osm_im/requirements.txt (line 3)) (1.1.10) +Requirement already satisfied: lxml==4.6.3 in /usr/local/lib/python3.6/dist-packages (from -r /usr/lib/python3/dist-packages/osm_im/requirements.txt (line 5)) (4.6.3) +Collecting pyang==2.4.0 + Downloading pyang-2.4.0-py2.py3-none-any.whl (591 kB) +Requirement already satisfied: pyangbind==0.8.1 in /usr/local/lib/python3.6/dist-packages (from -r /usr/lib/python3/dist-packages/osm_im/requirements.txt (line 13)) (0.8.1) +Collecting pyyaml==5.4.1 + Downloading PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl (640 kB) +Collecting regex==2021.3.17 + Downloading regex-2021.3.17-cp36-cp36m-manylinux2014_x86_64.whl (723 kB) +Collecting six==1.15.0 + Downloading six-1.15.0-py2.py3-none-any.whl (10 kB) +Building wheels for collected packages: bitarray + Building wheel for bitarray (setup.py): started + Building wheel for bitarray (setup.py): finished with status 'done' + Created wheel for bitarray: filename=bitarray-1.8.1-cp36-cp36m-linux_x86_64.whl size=126218 sha256=f32c028f13494d5542f5d4891eac1ac4e1ede30a33123b0c8fa931ca01bdbf7a + Stored in directory: /home/ubuntu/.cache/pip/wheels/06/56/e5/6eb78d4f54ad7874a6f68bcefc2c82663d5ca22d6503351a81 +Successfully built bitarray +Installing collected packages: six, regex, pyang, bitarray, pyyaml +Successfully installed bitarray-1.8.1 pyang-2.4.0 pyyaml-5.4.1 regex-2021.3.17 six-1.15.0 +Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + dns-root-data dnsmasq-base libuv1 uidmap xdelta3 +Use 'sudo apt autoremove' to remove them. +Suggested packages: + libcurl4-doc libidn11-dev libkrb5-dev libldap2-dev librtmp-dev libssh2-1-dev + pkg-config zlib1g-dev libssl-doc +The following NEW packages will be installed: + libcurl4-openssl-dev libssl-dev +0 upgraded, 2 newly installed, 0 to remove and 7 not upgraded. +Need to get 1869 kB of archives. +After this operation, 9277 kB of additional disk space will be used. +Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libcurl4-openssl-dev amd64 7.58.0-2ubuntu3.14 [301 kB] +Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libssl-dev amd64 1.1.1-1ubuntu2.1~18.04.13 [1568 kB] +Fetched 1869 kB in 0s (4051 kB/s) +Selecting previously unselected package libcurl4-openssl-dev:amd64. +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 68456 files and directories currently installed.) +Preparing to unpack .../libcurl4-openssl-dev_7.58.0-2ubuntu3.14_amd64.deb ... +Unpacking libcurl4-openssl-dev:amd64 (7.58.0-2ubuntu3.14) ... +Selecting previously unselected package libssl-dev:amd64. +Preparing to unpack .../libssl-dev_1.1.1-1ubuntu2.1~18.04.13_amd64.deb ... +Unpacking libssl-dev:amd64 (1.1.1-1ubuntu2.1~18.04.13) ... +Setting up libssl-dev:amd64 (1.1.1-1ubuntu2.1~18.04.13) ... +Setting up libcurl4-openssl-dev:amd64 (7.58.0-2ubuntu3.14) ... +Processing triggers for man-db (2.8.3-2ubuntu0.1) ... +Defaulting to user installation because normal site-packages is not writeable +Collecting certifi==2020.12.5 + Downloading certifi-2020.12.5-py2.py3-none-any.whl (147 kB) +Collecting chardet==4.0.0 + Downloading chardet-4.0.0-py2.py3-none-any.whl (178 kB) +Collecting click==7.1.2 + Downloading click-7.1.2-py2.py3-none-any.whl (82 kB) +Collecting idna==2.10 + Downloading idna-2.10-py2.py3-none-any.whl (58 kB) +Collecting jinja2==2.11.3 + Downloading Jinja2-2.11.3-py2.py3-none-any.whl (125 kB) +Collecting markupsafe==1.1.1 + Downloading MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_x86_64.whl (32 kB) +Collecting packaging==20.9 + Downloading packaging-20.9-py2.py3-none-any.whl (40 kB) +Collecting prettytable==2.1.0 + Downloading prettytable-2.1.0-py3-none-any.whl (22 kB) +Collecting pycurl==7.43.0.6 + Downloading pycurl-7.43.0.6.tar.gz (222 kB) +Collecting pyparsing==2.4.7 + Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB) +Collecting python-magic==0.4.22 + Downloading python_magic-0.4.22-py2.py3-none-any.whl (12 kB) +Requirement already satisfied: pyyaml==5.4.1 in /home/ubuntu/.local/lib/python3.6/site-packages (from -r /usr/lib/python3/dist-packages/osmclient/requirements.txt (line 23)) (5.4.1) +Collecting requests==2.25.1 + Downloading requests-2.25.1-py2.py3-none-any.whl (61 kB) +Collecting urllib3==1.26.4 + Downloading urllib3-1.26.4-py2.py3-none-any.whl (153 kB) +Requirement already satisfied: verboselogs==1.7 in /usr/local/lib/python3.6/dist-packages (from -r /usr/lib/python3/dist-packages/osmclient/requirements.txt (line 29)) (1.7) +Collecting wcwidth==0.2.5 + Downloading wcwidth-0.2.5-py2.py3-none-any.whl (30 kB) +Collecting importlib-metadata + Downloading importlib_metadata-4.8.1-py3-none-any.whl (17 kB) +Collecting typing-extensions>=3.6.4 + Downloading typing_extensions-3.10.0.2-py3-none-any.whl (26 kB) +Collecting zipp>=0.5 + Downloading zipp-3.5.0-py3-none-any.whl (5.7 kB) +Building wheels for collected packages: pycurl + Building wheel for pycurl (setup.py): started + Building wheel for pycurl (setup.py): finished with status 'done' + Created wheel for pycurl: filename=pycurl-7.43.0.6-cp36-cp36m-linux_x86_64.whl size=274584 sha256=5ea5e630a693e05885be5c562b012f216a144d3d404807238967d84e2873fe9c + Stored in directory: /home/ubuntu/.cache/pip/wheels/6b/17/54/ab9d3a8137df47050b265e8e01e1e161e423e6b6ec33bfd7d4 +Successfully built pycurl +Installing collected packages: zipp, typing-extensions, wcwidth, urllib3, pyparsing, markupsafe, importlib-metadata, idna, chardet, certifi, requests, python-magic, pycurl, prettytable, packaging, jinja2, click + WARNING: The script chardetect is installed in '/home/ubuntu/.local/bin' which is not on PATH. + Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. +Successfully installed certifi-2020.12.5 chardet-4.0.0 click-7.1.2 idna-2.10 importlib-metadata-4.8.1 jinja2-2.11.3 markupsafe-1.1.1 packaging-20.9 prettytable-2.1.0 pycurl-7.43.0.6 pyparsing-2.4.7 python-magic-0.4.22 requests-2.25.1 typing-extensions-3.10.0.2 urllib3-1.26.4 wcwidth-0.2.5 zipp-3.5.0 + +OSM client installed +OSM client assumes that OSM host is running in localhost (127.0.0.1). +In case you want to interact with a different OSM host, you will have to configure this env variable in your .bashrc file: + export OSM_HOSTNAME= +Checking OSM health state... +Check OSM status with: kubectl -n osm get all +4f9406a6-215d-4a1c-8995-32e9a44d214a +66c9de33-febc-4656-b164-f19e32f0f3db + +DONE diff --git a/_tmp/osm-install/multipass.install.sh b/_tmp/osm-install/multipass.install.sh new file mode 100755 index 0000000..feed2da --- /dev/null +++ b/_tmp/osm-install/multipass.install.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +multipass launch --name osm --cpus 2 --mem 6G --disk 40G 18.04 + +multipass mount ./ osm:/mnt/osm-install + +# multipass exec osm -- cd /mnt/osm-install && ./patched.install_osm.sh 2>&1 | tee install.log +# ^ sudo issue + +multipass shell osm + +# Base OSM install +# +# $ cd /mnt/osm-install +# $ ./patched.install_osm.sh 2>&1 | tee install.log + +# KNF setup for an isolated K8s cluster, copy-pasted from: +# - https://osm.etsi.org/docs/user-guide/05-osm-usage.html#adding-kubernetes-cluster-to-osm +# but changed version to the actual K8s server version returned by `kubectl version` +# +# $ osm vim-create --name mylocation1 --user u --password p --tenant p --account_type dummy --auth_url http://localhost/dummy +# $ osm k8scluster-add cluster --creds .kube/config --vim mylocation1 --k8s-nets '{k8s_net1: null}' --version "v1.15.12" --description="Isolated K8s cluster in mylocation1" + +# Some rops where to fetch Helm charts for KNF +# +# $ osm repo-add --type helm-chart --description "Bitnami repo" bitnami https://charts.bitnami.com/bitnami +# $ osm repo-add --type helm-chart --description "Cetic repo" cetic https://cetic.github.io/helm-charts +# $ osm repo-add --type helm-chart --description "Elastic repo" elastic https://helm.elastic.co + +# To clean up: +# +# $ multipass stop osm +# $ multipass delete osm +# $ multipass purge diff --git a/_tmp/osm-install/patched.full_install_osm.sh b/_tmp/osm-install/patched.full_install_osm.sh new file mode 100755 index 0000000..5a51010 --- /dev/null +++ b/_tmp/osm-install/patched.full_install_osm.sh @@ -0,0 +1,1870 @@ +#!/bin/bash +# Copyright 2016 Telefónica Investigación y Desarrollo S.A.U. +# +# 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. + +function usage(){ + echo -e "usage: $0 [OPTIONS]" + echo -e "Install OSM from binaries or source code (by default, from binaries)" + echo -e " OPTIONS" + echo -e " -h / --help: print this help" + echo -e " -y: do not prompt for confirmation, assumes yes" + echo -e " -r : use specified repository name for osm packages" + echo -e " -R : use specified release for osm binaries (deb packages, lxd images, ...)" + echo -e " -u : use specified repository url for osm packages" + echo -e " -k : use specified repository public key url" + echo -e " -b : install OSM from source code using a specific branch (master, v2.0, ...) or tag" + echo -e " -b master (main dev branch)" + echo -e " -b v2.0 (v2.0 branch)" + echo -e " -b tags/v1.1.0 (a specific tag)" + echo -e " ..." + echo -e " -c deploy osm services using container . Valid values are or . If -c is not used then osm will be deployed using default orchestrator. When used with --uninstall, osm services deployed by the orchestrator will be uninstalled" + echo -e " -s or user defined stack name when installed using swarm or namespace when installed using k8s, default is osm" + echo -e " -H use specific juju host controller IP" + echo -e " -S use VCA/juju secret key" + echo -e " -P use VCA/juju public key file" + echo -e " -C use VCA/juju CA certificate file" + echo -e " -A use VCA/juju API proxy" + echo -e " --vimemu: additionally deploy the VIM emulator as a docker container" + echo -e " --elk_stack: additionally deploy an ELK docker stack for event logging" + echo -e " --pla: install the PLA module for placement support" + echo -e " -m : install OSM but only rebuild or pull the specified docker images (NG-UI, NBI, LCM, RO, MON, POL, PLA, KAFKA, MONGO, PROMETHEUS, PROMETHEUS-CADVISOR, KEYSTONE-DB, NONE)" + echo -e " -o : ONLY (un)installs one of the addons (vimemu, elk_stack, k8s_monitor)" + echo -e " -O : Install OSM to an OpenStack infrastructure. is required. If a is used, the clouds.yaml file should be under ~/.config/openstack/ or /etc/openstack/" + echo -e " -N : Public network name required to setup OSM to OpenStack" + echo -e " -f : Public SSH key to use to deploy OSM to OpenStack" + echo -e " -F : Cloud-Init userdata file to deploy OSM to OpenStack" + echo -e " -D use local devops installation path" + echo -e " -w Location to store runtime installation" + echo -e " -t specify osm docker tag (default is latest)" + echo -e " -l: LXD cloud yaml file" + echo -e " -L: LXD credentials yaml file" + echo -e " -K: Specifies the name of the controller to use - The controller must be already bootstrapped" + echo -e " -d use docker registry URL instead of dockerhub" + echo -e " -p set docker proxy URL as part of docker CE configuration" + echo -e " -T specify docker tag for the modules specified with option -m" + echo -e " --nocachelxdimages: do not cache local lxd images, do not create cronjob for that cache (will save installation time, might affect instantiation time)" + echo -e " --nolxd: do not install and configure LXD, allowing unattended installations (assumes LXD is already installed and confifured)" + echo -e " --nodocker: do not install docker, do not initialize a swarm (assumes docker is already installed and a swarm has been initialized)" + echo -e " --nojuju: do not juju, assumes already installed" + echo -e " --nodockerbuild:do not build docker images (use existing locally cached images)" + echo -e " --nohostports: do not expose docker ports to host (useful for creating multiple instances of osm on the same host)" + echo -e " --nohostclient: do not install the osmclient" + echo -e " --uninstall: uninstall OSM: remove the containers and delete NAT rules" + echo -e " --source: install OSM from source code using the latest stable tag" + echo -e " --develop: (deprecated, use '-b master') install OSM from source code using the master branch" + echo -e " --pullimages: pull/run osm images from docker.io/opensourcemano" + echo -e " --k8s_monitor: install the OSM kubernetes monitoring with prometheus and grafana" + echo -e " --volume: create a VM volume when installing to OpenStack" +# echo -e " --reconfigure: reconfigure the modules (DO NOT change NAT rules)" +# echo -e " --update: update to the latest stable release or to the latest commit if using a specific branch" + echo -e " --showopts: print chosen options and exit (only for debugging)" + echo -e " --charmed: Deploy and operate OSM with Charms on k8s" + echo -e " [--bundle ]: Specify with which bundle to deploy OSM with charms (--charmed option)" + echo -e " [--k8s ]: Specify with which kubernetes to deploy OSM with charms (--charmed option)" + echo -e " [--vca ]: Specifies the name of the controller to use - The controller must be already bootstrapped (--charmed option)" + echo -e " [--lxd ]: Takes a YAML file as a parameter with the LXD Cloud information (--charmed option)" + echo -e " [--lxd-cred ]: Takes a YAML file as a parameter with the LXD Credentials information (--charmed option)" + echo -e " [--microstack]: Installs microstack as a vim. (--charmed option)" + echo -e " [--overlay]: Add an overlay to override some defaults of the default bundle (--charmed option)" + echo -e " [--ha]: Installs High Availability bundle. (--charmed option)" + echo -e " [--tag]: Docker image tag. (--charmed option)" + echo -e " [--registry]: Docker registry with optional credentials as user:pass@hostname:port (--charmed option)" + +} + +# takes a juju/accounts.yaml file and returns the password specific +# for a controller. I wrote this using only bash tools to minimize +# additions of other packages +function parse_juju_password { + password_file="${HOME}/.local/share/juju/accounts.yaml" + local controller_name=$1 + local s='[[:space:]]*' w='[a-zA-Z0-9_-]*' fs=$(echo @|tr @ '\034') + sed -ne "s|^\($s\):|\1|" \ + -e "s|^\($s\)\($w\)$s:$s[\"']\(.*\)[\"']$s\$|\1$fs\2$fs\3|p" \ + -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" $password_file | + awk -F$fs -v controller=$controller_name '{ + indent = length($1)/2; + vname[indent] = $2; + for (i in vname) {if (i > indent) {delete vname[i]}} + if (length($3) > 0) { + vn=""; for (i=0; i/dev/null; then + echo -e " Not installed.\nInstalling iptables-persistent requires root privileges" + echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections + echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections + sudo apt-get -yq install iptables-persistent + fi +} + +#Configure NAT rules, based on the current IP addresses of containers +function nat(){ + check_install_iptables_persistent + + echo -e "\nConfiguring NAT rules" + echo -e " Required root privileges" + sudo $OSM_DEVOPS/installers/nat_osm +} + +function FATAL(){ + echo "FATAL error: Cannot install OSM due to \"$1\"" + exit 1 +} + +function update_juju_images(){ + crontab -l | grep update-juju-lxc-images || (crontab -l 2>/dev/null; echo "0 4 * * 6 $USER ${OSM_DEVOPS}/installers/update-juju-lxc-images --xenial --bionic") | crontab - + ${OSM_DEVOPS}/installers/update-juju-lxc-images --xenial --bionic +} + +function install_lxd() { + # Apply sysctl production values for optimal performance + sudo cp ${OSM_DEVOPS}/installers/60-lxd-production.conf /etc/sysctl.d/60-lxd-production.conf + sudo sysctl --system + + # Install LXD snap + sudo apt-get remove --purge -y liblxc1 lxc-common lxcfs lxd lxd-client + sudo snap install lxd + + # Configure LXD + sudo usermod -a -G lxd `whoami` + cat ${OSM_DEVOPS}/installers/lxd-preseed.conf | sed 's/^config: {}/config:\n core.https_address: '$DEFAULT_IP':8443/' | sg lxd -c "lxd init --preseed" + sg lxd -c "lxd waitready" + DEFAULT_INTERFACE=$(ip route list|awk '$1=="default" {print $5; exit}') + [ -z "$DEFAULT_INTERFACE" ] && DEFAULT_INTERFACE=$(route -n |awk '$1~/^0.0.0.0/ {print $8; exit}') + DEFAULT_MTU=$(ip addr show $DEFAULT_INTERFACE | perl -ne 'if (/mtu\s(\d+)/) {print $1;}') + sg lxd -c "lxc profile device set default eth0 mtu $DEFAULT_MTU" + sg lxd -c "lxc network set lxdbr0 bridge.mtu $DEFAULT_MTU" + #sudo systemctl stop lxd-bridge + #sudo systemctl --system daemon-reload + #sudo systemctl enable lxd-bridge + #sudo systemctl start lxd-bridge +} + +function ask_user(){ + # ask to the user and parse a response among 'y', 'yes', 'n' or 'no'. Case insensitive + # Params: $1 text to ask; $2 Action by default, can be 'y' for yes, 'n' for no, other or empty for not allowed + # Return: true(0) if user type 'yes'; false (1) if user type 'no' + read -e -p "$1" USER_CONFIRMATION + while true ; do + [ -z "$USER_CONFIRMATION" ] && [ "$2" == 'y' ] && return 0 + [ -z "$USER_CONFIRMATION" ] && [ "$2" == 'n' ] && return 1 + [ "${USER_CONFIRMATION,,}" == "yes" ] || [ "${USER_CONFIRMATION,,}" == "y" ] && return 0 + [ "${USER_CONFIRMATION,,}" == "no" ] || [ "${USER_CONFIRMATION,,}" == "n" ] && return 1 + read -e -p "Please type 'yes' or 'no': " USER_CONFIRMATION + done +} + +function install_osmclient(){ + CLIENT_RELEASE=${RELEASE#"-R "} + CLIENT_REPOSITORY_KEY="OSM%20ETSI%20Release%20Key.gpg" + CLIENT_REPOSITORY=${REPOSITORY#"-r "} + CLIENT_REPOSITORY_BASE=${REPOSITORY_BASE#"-u "} + key_location=$CLIENT_REPOSITORY_BASE/$CLIENT_RELEASE/$CLIENT_REPOSITORY_KEY + curl $key_location | sudo apt-key add - + sudo add-apt-repository -y "deb [arch=amd64] $CLIENT_REPOSITORY_BASE/$CLIENT_RELEASE $CLIENT_REPOSITORY osmclient IM" + sudo apt-get update + sudo apt-get install -y python3-pip + sudo -H LC_ALL=C python3 -m pip install -U pip + sudo -H LC_ALL=C python3 -m pip install -U python-magic pyangbind verboselogs + sudo apt-get install -y python3-osm-im python3-osmclient + if [ -f /usr/lib/python3/dist-packages/osm_im/requirements.txt ]; then + python3 -m pip install -r /usr/lib/python3/dist-packages/osm_im/requirements.txt + fi + if [ -f /usr/lib/python3/dist-packages/osmclient/requirements.txt ]; then + sudo apt-get install -y libcurl4-openssl-dev libssl-dev + python3 -m pip install -r /usr/lib/python3/dist-packages/osmclient/requirements.txt + fi + #sed 's,OSM_SOL005=[^$]*,OSM_SOL005=True,' -i ${HOME}/.bashrc + #echo 'export OSM_HOSTNAME=localhost' >> ${HOME}/.bashrc + #echo 'export OSM_SOL005=True' >> ${HOME}/.bashrc + [ -z "$INSTALL_LIGHTWEIGHT" ] && export OSM_HOSTNAME=`lxc list | awk '($2=="SO-ub"){print $6}'` + [ -z "$INSTALL_LIGHTWEIGHT" ] && export OSM_RO_HOSTNAME=`lxc list | awk '($2=="RO"){print $6}'` + echo -e "\nOSM client installed" + if [ -z "$INSTALL_LIGHTWEIGHT" ]; then + echo -e "You might be interested in adding the following OSM client env variables to your .bashrc file:" + echo " export OSM_HOSTNAME=${OSM_HOSTNAME}" + echo " export OSM_RO_HOSTNAME=${OSM_RO_HOSTNAME}" + else + echo -e "OSM client assumes that OSM host is running in localhost (127.0.0.1)." + echo -e "In case you want to interact with a different OSM host, you will have to configure this env variable in your .bashrc file:" + echo " export OSM_HOSTNAME=" + fi + return 0 +} + +function install_prometheus_nodeexporter(){ + if (systemctl -q is-active node_exporter) + then + echo "Node Exporter is already running." + else + echo "Node Exporter is not active, installing..." + if getent passwd node_exporter > /dev/null 2>&1; then + echo "node_exporter user exists" + else + echo "Creating user node_exporter" + sudo useradd --no-create-home --shell /bin/false node_exporter + fi + wget -q https://github.com/prometheus/node_exporter/releases/download/v$PROMETHEUS_NODE_EXPORTER_TAG/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64.tar.gz -P /tmp/ + sudo tar -C /tmp -xf /tmp/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64.tar.gz + sudo cp /tmp/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64/node_exporter /usr/local/bin + sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter + sudo rm -rf /tmp/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64* + sudo cp ${OSM_DEVOPS}/installers/docker/prometheus_exporters/node_exporter.service /etc/systemd/system/node_exporter.service + sudo systemctl daemon-reload + sudo systemctl restart node_exporter + sudo systemctl enable node_exporter + echo "Node Exporter has been activated in this host." + fi + return 0 +} + +function uninstall_prometheus_nodeexporter(){ + sudo systemctl stop node_exporter + sudo systemctl disable node_exporter + sudo rm /etc/systemd/system/node_exporter.service + sudo systemctl daemon-reload + sudo userdel node_exporter + sudo rm /usr/local/bin/node_exporter + return 0 +} + +function install_docker_ce() { + # installs and configures Docker CE + echo "Installing Docker CE ..." + sudo apt-get -qq update + sudo apt-get install -y apt-transport-https ca-certificates software-properties-common + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - + sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" + sudo apt-get -qq update + sudo apt-get install -y docker-ce + echo "Adding user to group 'docker'" + sudo groupadd -f docker + sudo usermod -aG docker $USER + sleep 2 + sudo service docker restart + echo "... restarted Docker service" + if [ -n "${DOCKER_PROXY_URL}" ]; then + echo "Configuring docker proxy ..." + if [ -f /etc/docker/daemon.json ]; then + if grep -q registry-mirrors /etc/docker/daemon.json; then + sudo sed -i "s|registry-mirrors.*|registry-mirrors\": [\"${DOCKER_PROXY_URL}\"] |" /etc/docker/daemon.json + else + sudo sed -i "s|{|{\n \"registry-mirrors\": [\"${DOCKER_PROXY_URL}\"],|" /etc/docker/daemon.json + fi + else + sudo bash -c "cat << EOF > /etc/docker/daemon.json +{ + \"registry-mirrors\": [\"${DOCKER_PROXY_URL}\"] +} +EOF" + fi + sudo systemctl daemon-reload + sudo service docker restart + echo "... restarted Docker service again" + fi + sg docker -c "docker version" || FATAL "Docker installation failed" + echo "... Docker CE installation done" + return 0 +} + +function install_docker_compose() { + # installs and configures docker-compose + echo "Installing Docker Compose ..." + sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose + sudo chmod +x /usr/local/bin/docker-compose + echo "... Docker Compose installation done" +} + +function install_juju() { + echo "Installing juju" + sudo snap install juju --classic --channel=$JUJU_VERSION/stable + [[ ":$PATH": != *":/snap/bin:"* ]] && PATH="/snap/bin:${PATH}" + [ -n "$INSTALL_NOCACHELXDIMAGES" ] || update_juju_images + echo "Finished installation of juju" + return 0 +} + +function juju_createcontroller() { + if ! juju show-controller $OSM_STACK_NAME &> /dev/null; then + # Not found created, create the controller + sudo usermod -a -G lxd ${USER} + sg lxd -c "juju bootstrap --bootstrap-series=xenial --agent-version=$JUJU_AGENT_VERSION $OSM_VCA_CLOUDNAME $OSM_STACK_NAME" + fi + [ $(juju controllers | awk "/^${OSM_STACK_NAME}[\*| ]/{print $1}"|wc -l) -eq 1 ] || FATAL "Juju installation failed" + juju controller-config features=[k8s-operators] +} + +function juju_addk8s() { + cat $HOME/.kube/config | juju add-k8s $OSM_VCA_K8S_CLOUDNAME --controller $OSM_STACK_NAME --storage openebs-hostpath +} + +function juju_createcontroller_k8s(){ + cat $HOME/.kube/config | juju add-k8s $OSM_VCA_K8S_CLOUDNAME --client + juju bootstrap $OSM_VCA_K8S_CLOUDNAME $OSM_STACK_NAME \ + --config controller-service-type=loadbalancer \ + --agent-version=$JUJU_AGENT_VERSION +} + + +function juju_addlxd_cloud(){ + mkdir -p /tmp/.osm + OSM_VCA_CLOUDNAME="lxd-cloud" + LXDENDPOINT=$DEFAULT_IP + LXD_CLOUD=/tmp/.osm/lxd-cloud.yaml + LXD_CREDENTIALS=/tmp/.osm/lxd-credentials.yaml + + cat << EOF > $LXD_CLOUD +clouds: + $OSM_VCA_CLOUDNAME: + type: lxd + auth-types: [certificate] + endpoint: "https://$LXDENDPOINT:8443" + config: + ssl-hostname-verification: false +EOF + openssl req -nodes -new -x509 -keyout /tmp/.osm/client.key -out /tmp/.osm/client.crt -days 365 -subj "/C=FR/ST=Nice/L=Nice/O=ETSI/OU=OSM/CN=osm.etsi.org" + local server_cert=`cat /var/snap/lxd/common/lxd/server.crt | sed 's/^/ /'` + local client_cert=`cat /tmp/.osm/client.crt | sed 's/^/ /'` + local client_key=`cat /tmp/.osm/client.key | sed 's/^/ /'` + + cat << EOF > $LXD_CREDENTIALS +credentials: + $OSM_VCA_CLOUDNAME: + lxd-cloud: + auth-type: certificate + server-cert: | +$server_cert + client-cert: | +$client_cert + client-key: | +$client_key +EOF + lxc config trust add local: /tmp/.osm/client.crt + juju add-cloud -c $OSM_STACK_NAME $OSM_VCA_CLOUDNAME $LXD_CLOUD --force + juju add-credential -c $OSM_STACK_NAME $OSM_VCA_CLOUDNAME -f $LXD_CREDENTIALS + sg lxd -c "lxd waitready" + juju controller-config features=[k8s-operators] +} + + +function juju_createproxy() { + check_install_iptables_persistent + + if ! sudo iptables -t nat -C PREROUTING -p tcp -m tcp -d $DEFAULT_IP --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST; then + sudo iptables -t nat -A PREROUTING -p tcp -m tcp -d $DEFAULT_IP --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST + sudo netfilter-persistent save + fi +} + +function docker_login() { + echo "Docker login" + sg docker -c "docker login -u ${DOCKER_REGISTRY_USER} -p ${DOCKER_REGISTRY_PASSWORD}" +} + +function generate_docker_images() { + echo "Pulling and generating docker images" + [ -n "${DOCKER_REGISTRY_URL}" ] && docker_login + + echo "Pulling docker images" + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q KAFKA ; then + sg docker -c "docker pull wurstmeister/zookeeper" || FATAL "cannot get zookeeper docker image" + sg docker -c "docker pull wurstmeister/kafka:${KAFKA_TAG}" || FATAL "cannot get kafka docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q MONGO ; then + sg docker -c "docker pull mongo" || FATAL "cannot get mongo docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q PROMETHEUS ; then + sg docker -c "docker pull prom/prometheus:${PROMETHEUS_TAG}" || FATAL "cannot get prometheus docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q PROMETHEUS-CADVISOR ; then + sg docker -c "docker pull google/cadvisor:${PROMETHEUS_CADVISOR_TAG}" || FATAL "cannot get prometheus cadvisor docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q GRAFANA ; then + sg docker -c "docker pull grafana/grafana:${GRAFANA_TAG}" || FATAL "cannot get grafana docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q NBI || echo $TO_REBUILD | grep -q KEYSTONE-DB ; then + sg docker -c "docker pull mariadb:${KEYSTONEDB_TAG}" || FATAL "cannot get keystone-db docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q RO ; then + sg docker -c "docker pull mysql:5" || FATAL "cannot get mysql docker image" + fi + + if [ -n "$PULL_IMAGES" ]; then + echo "Pulling OSM docker images" + for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA osmclient; do + module_lower=${module,,} + if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then + continue + fi + module_tag="${OSM_DOCKER_TAG}" + if [ -n "${MODULE_DOCKER_TAG}" ] && echo $TO_REBUILD | grep -q $module ; then + module_tag="${MODULE_DOCKER_TAG}" + fi + echo "Pulling ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag} docker image" + sg docker -c "docker pull ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag}" || FATAL "cannot pull $module docker image" + done + else + _build_from=$COMMIT_ID + [ -z "$_build_from" ] && _build_from="latest" + echo "OSM Docker images generated from $_build_from" + + for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA; do + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q ${module} ; then + module_lower=${module,,} + if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then + continue + fi + git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/$module + git -C ${LWTEMPDIR}/${module} checkout ${COMMIT_ID} + sg docker -c "docker build ${LWTEMPDIR}/${module} -f ${LWTEMPDIR}/${module}/docker/Dockerfile -t ${DOCKER_USER}/${module_lower} --no-cache" || FATAL "cannot build ${module} docker image" + fi + done + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q osmclient; then + BUILD_ARGS+=(--build-arg REPOSITORY="$REPOSITORY") + BUILD_ARGS+=(--build-arg RELEASE="$RELEASE") + BUILD_ARGS+=(--build-arg REPOSITORY_KEY="$REPOSITORY_KEY") + BUILD_ARGS+=(--build-arg REPOSITORY_BASE="$REPOSITORY_BASE") + sg docker -c "docker build -t ${DOCKER_USER}/osmclient ${BUILD_ARGS[@]} -f $OSM_DEVOPS/docker/osmclient ." + fi + echo "Finished generation of docker images" + fi + + echo "Finished pulling and generating docker images" +} + +function cmp_overwrite() { + file1="$1" + file2="$2" + if ! $(cmp "${file1}" "${file2}" >/dev/null 2>&1); then + if [ -f "${file2}" ]; then + ask_user "The file ${file2} already exists. Overwrite (y/N)? " n && cp -b ${file1} ${file2} + else + cp -b ${file1} ${file2} + fi + fi +} + +function generate_docker_compose_files() { + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/docker-compose.yaml $OSM_DOCKER_WORK_DIR/docker-compose.yaml + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/docker-compose-ngui.yaml $OSM_DOCKER_WORK_DIR/docker-compose-ui.yaml + if [ -n "$INSTALL_PLA" ]; then + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/osm_pla/docker-compose.yaml $OSM_DOCKER_WORK_DIR/osm_pla/docker-compose.yaml + fi +} + +function generate_k8s_manifest_files() { + #Kubernetes resources + $WORKDIR_SUDO cp -bR ${OSM_DEVOPS}/installers/docker/osm_pods $OSM_DOCKER_WORK_DIR + $WORKDIR_SUDO rm -f $OSM_K8S_WORK_DIR/mongo.yaml +} + +function generate_prometheus_grafana_files() { + [ -n "$KUBERNETES" ] && return + # Prometheus files + $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/prometheus + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/prometheus/prometheus.yml $OSM_DOCKER_WORK_DIR/prometheus/prometheus.yml + + # Grafana files + $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/grafana + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/dashboards-osm.yml $OSM_DOCKER_WORK_DIR/grafana/dashboards-osm.yml + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/datasource-prometheus.yml $OSM_DOCKER_WORK_DIR/grafana/datasource-prometheus.yml + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/osm-sample-dashboard.json $OSM_DOCKER_WORK_DIR/grafana/osm-sample-dashboard.json + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/osm-system-dashboard.json $OSM_DOCKER_WORK_DIR/grafana/osm-system-dashboard.json + + # Prometheus Exporters files + $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/prometheus_exporters + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/prometheus_exporters/node_exporter.service $OSM_DOCKER_WORK_DIR/prometheus_exporters/node_exporter.service +} + +function generate_docker_env_files() { + echo "Doing a backup of existing env files" + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/keystone-db.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/keystone.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/lcm.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/mon.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/nbi.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/pol.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/ro-db.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/ro.env{,~} + + echo "Generating docker env files" + # LCM + if [ ! -f $OSM_DOCKER_WORK_DIR/lcm.env ]; then + echo "OSMLCM_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_HOST" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_HOST=${OSM_VCA_HOST}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_HOST.*|OSMLCM_VCA_HOST=$OSM_VCA_HOST|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_SECRET" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_SECRET=${OSM_VCA_SECRET}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_SECRET.*|OSMLCM_VCA_SECRET=$OSM_VCA_SECRET|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_PUBKEY" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_PUBKEY=${OSM_VCA_PUBKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_PUBKEY.*|OSMLCM_VCA_PUBKEY=${OSM_VCA_PUBKEY}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_CACERT" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_CACERT=${OSM_VCA_CACERT}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_CACERT.*|OSMLCM_VCA_CACERT=${OSM_VCA_CACERT}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if [ -n "$OSM_VCA_APIPROXY" ]; then + if ! grep -Fq "OSMLCM_VCA_APIPROXY" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_APIPROXY.*|OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + fi + + if ! grep -Fq "OSMLCM_VCA_ENABLEOSUPGRADE" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "# OSMLCM_VCA_ENABLEOSUPGRADE=false" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_APTMIRROR" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "# OSMLCM_VCA_APTMIRROR=http://archive.ubuntu.com/ubuntu/" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_CLOUD" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_CLOUD=${OSM_VCA_CLOUDNAME}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_CLOUD.*|OSMLCM_VCA_CLOUD=${OSM_VCA_CLOUDNAME}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_K8S_CLOUD" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_K8S_CLOUD=${OSM_VCA_K8S_CLOUDNAME}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_K8S_CLOUD.*|OSMLCM_VCA_K8S_CLOUD=${OSM_VCA_K8S_CLOUDNAME}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + # RO + MYSQL_ROOT_PASSWORD=$(generate_secret) + if [ ! -f $OSM_DOCKER_WORK_DIR/ro-db.env ]; then + echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/ro-db.env + fi + if [ ! -f $OSM_DOCKER_WORK_DIR/ro.env ]; then + echo "RO_DB_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/ro.env + fi + if ! grep -Fq "OSMRO_DATABASE_COMMONKEY" $OSM_DOCKER_WORK_DIR/ro.env; then + echo "OSMRO_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/ro.env + fi + + # Keystone + KEYSTONE_DB_PASSWORD=$(generate_secret) + SERVICE_PASSWORD=$(generate_secret) + if [ ! -f $OSM_DOCKER_WORK_DIR/keystone-db.env ]; then + echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/keystone-db.env + fi + if [ ! -f $OSM_DOCKER_WORK_DIR/keystone.env ]; then + echo "ROOT_DB_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/keystone.env + echo "KEYSTONE_DB_PASSWORD=${KEYSTONE_DB_PASSWORD}" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/keystone.env + echo "SERVICE_PASSWORD=${SERVICE_PASSWORD}" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/keystone.env + fi + + # NBI + if [ ! -f $OSM_DOCKER_WORK_DIR/nbi.env ]; then + echo "OSMNBI_AUTHENTICATION_SERVICE_PASSWORD=${SERVICE_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/nbi.env + echo "OSMNBI_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/nbi.env + fi + + # MON + if [ ! -f $OSM_DOCKER_WORK_DIR/mon.env ]; then + echo "OSMMON_KEYSTONE_SERVICE_PASSWORD=${SERVICE_PASSWORD}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + echo "OSMMON_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + echo "OSMMON_SQL_DATABASE_URI=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/mon" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OS_NOTIFIER_URI" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OS_NOTIFIER_URI=http://${DEFAULT_IP}:8662" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OS_NOTIFIER_URI.*|OS_NOTIFIER_URI=http://$DEFAULT_IP:8662|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_HOST" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_HOST=${OSM_VCA_HOST}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_HOST.*|OSMMON_VCA_HOST=$OSM_VCA_HOST|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_SECRET" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_SECRET=${OSM_VCA_SECRET}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_SECRET.*|OSMMON_VCA_SECRET=$OSM_VCA_SECRET|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_CACERT" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_CACERT=${OSM_VCA_CACERT}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_CACERT.*|OSMMON_VCA_CACERT=${OSM_VCA_CACERT}|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + + # POL + if [ ! -f $OSM_DOCKER_WORK_DIR/pol.env ]; then + echo "OSMPOL_SQL_DATABASE_URI=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/pol" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/pol.env + fi + + echo "Finished generation of docker env files" +} + +function generate_osmclient_script () { + echo "docker run -ti --network net${OSM_STACK_NAME} ${DOCKER_REGISTRY_URL}${DOCKER_USER}/osmclient:${OSM_DOCKER_TAG}" | $WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/osm + $WORKDIR_SUDO chmod +x "$OSM_DOCKER_WORK_DIR/osm" + echo "osmclient sidecar container can be found at: $OSM_DOCKER_WORK_DIR/osm" +} + +#installs kubernetes packages +function install_kube() { + sudo apt-get update && sudo apt-get install -y apt-transport-https + curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - + sudo add-apt-repository "deb https://apt.kubernetes.io/ kubernetes-xenial main" + sudo apt-get update + echo "Installing Kubernetes Packages ..." + sudo apt-get install -y kubelet=1.15.0-00 kubeadm=1.15.0-00 kubectl=1.15.0-00 + sudo apt-mark hold kubelet kubeadm kubectl +} + +#initializes kubernetes control plane +function init_kubeadm() { + sudo swapoff -a + sudo sed -i.bak '/.*none.*swap/s/^\(.*\)$/#\1/g' /etc/fstab + sudo kubeadm init --config $1 + sleep 5 +} + +function kube_config_dir() { + [ ! -d $K8S_MANIFEST_DIR ] && FATAL "Cannot Install Kubernetes" + mkdir -p $HOME/.kube + sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config +} + +function install_k8s_storageclass() { + echo "Installing OpenEBS" + kubectl create ns openebs + helm repo add openebs https://openebs.github.io/charts + helm repo update + helm install --namespace openebs openebs openebs/openebs --version 1.12.0 + helm ls -n openebs + local storageclass_timeout=600 + local counter=0 + local storageclass_ready="" + echo "Waiting for storageclass" + while (( counter < storageclass_timeout )) + do + kubectl get storageclass openebs-hostpath &> /dev/null + + if [ $? -eq 0 ] ; then + echo "Storageclass available" + storageclass_ready="y" + break + else + counter=$((counter + 15)) + sleep 15 + fi + done + [ -n "$storageclass_ready" ] || FATAL "Storageclass not ready after $storageclass_timeout seconds. Cannot install openebs" + kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' +} + +function install_k8s_metallb() { + METALLB_IP_RANGE=$DEFAULT_IP-$DEFAULT_IP + cat ${OSM_DEVOPS}/installers/k8s/metallb/metallb.yaml | kubectl apply -f - + echo "apiVersion: v1 +kind: ConfigMap +metadata: + namespace: metallb-system + name: config +data: + config: | + address-pools: + - name: default + protocol: layer2 + addresses: + - $METALLB_IP_RANGE" | kubectl apply -f - +} +#deploys flannel as daemonsets +function deploy_cni_provider() { + CNI_DIR="$(mktemp -d -q --tmpdir "flannel.XXXXXX")" + trap 'rm -rf "${CNI_DIR}"' EXIT + wget -q https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml -P $CNI_DIR + kubectl apply -f $CNI_DIR + [ $? -ne 0 ] && FATAL "Cannot Install Flannel" +} + +#creates secrets from env files which will be used by containers +function kube_secrets(){ + kubectl create ns $OSM_STACK_NAME + kubectl create secret generic lcm-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/lcm.env + kubectl create secret generic mon-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/mon.env + kubectl create secret generic nbi-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/nbi.env + kubectl create secret generic ro-db-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/ro-db.env + kubectl create secret generic ro-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/ro.env + kubectl create secret generic keystone-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/keystone.env + kubectl create secret generic pol-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/pol.env +} + +#taints K8s master node +function taint_master_node() { + K8S_MASTER=$(kubectl get nodes | awk '$3~/master/'| awk '{print $1}') + kubectl taint node $K8S_MASTER node-role.kubernetes.io/master:NoSchedule- + sleep 5 +} + +#deploys osm pods and services +function deploy_osm_services() { + kubectl apply -n $OSM_STACK_NAME -f $OSM_K8S_WORK_DIR +} + +#deploy charmed services +function deploy_charmed_services() { + juju add-model $OSM_STACK_NAME $OSM_VCA_K8S_CLOUDNAME + juju deploy ch:mongodb-k8s -m $OSM_STACK_NAME +} + +function deploy_osm_pla_service() { + # corresponding to namespace_vol + $WORKDIR_SUDO sed -i "s#path: /var/lib/osm#path: $OSM_NAMESPACE_VOL#g" $OSM_DOCKER_WORK_DIR/osm_pla/pla.yaml + # corresponding to deploy_osm_services + kubectl apply -n $OSM_STACK_NAME -f $OSM_DOCKER_WORK_DIR/osm_pla +} + +#Install Helm v3 +function install_helm() { + helm > /dev/null 2>&1 + if [ $? != 0 ] ; then + # Helm is not installed. Install helm + echo "Helm is not installed, installing ..." + curl https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz --output helm-v3.6.3.tar.gz + tar -zxvf helm-v3.6.3.tar.gz + sudo mv linux-amd64/helm /usr/local/bin/helm + rm -r linux-amd64 + rm helm-v3.6.3.tar.gz + helm repo add stable https://charts.helm.sh/stable + helm repo update + fi +} + +function parse_yaml() { + TAG=$1 + shift + services=$@ + for module in $services; do + if [ "$module" == "pla" ]; then + if [ -n "$INSTALL_PLA" ]; then + echo "Updating K8s manifest file from opensourcemano\/${module}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${module}:${TAG}" + $WORKDIR_SUDO sed -i "s#opensourcemano/pla:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/pla:${TAG}#g" ${OSM_DOCKER_WORK_DIR}/osm_pla/pla.yaml + fi + else + echo "Updating K8s manifest file from opensourcemano\/${module}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${module}:${TAG}" + $WORKDIR_SUDO sed -i "s#opensourcemano/${module}:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module}:${TAG}#g" ${OSM_K8S_WORK_DIR}/${module}.yaml + fi + done +} + +function update_manifest_files() { + osm_services="nbi lcm ro pol mon ng-ui keystone pla" + list_of_services="" + for module in $osm_services; do + module_upper="${module^^}" + if ! echo $TO_REBUILD | grep -q $module_upper ; then + list_of_services="$list_of_services $module" + fi + done + if [ ! "$OSM_DOCKER_TAG" == "10" ]; then + parse_yaml $OSM_DOCKER_TAG $list_of_services + fi + if [ -n "$MODULE_DOCKER_TAG" ]; then + parse_yaml $MODULE_DOCKER_TAG $list_of_services_to_rebuild + fi +} + +function namespace_vol() { + osm_services="nbi lcm ro pol mon kafka mysql prometheus" + for osm in $osm_services; do + $WORKDIR_SUDO sed -i "s#path: /var/lib/osm#path: $OSM_NAMESPACE_VOL#g" $OSM_K8S_WORK_DIR/$osm.yaml + done +} + +function init_docker_swarm() { + if [ "${DEFAULT_MTU}" != "1500" ]; then + DOCKER_NETS=`sg docker -c "docker network list" | awk '{print $2}' | egrep -v "^ID$" | paste -d " " -s` + DOCKER_GW_NET=`sg docker -c "docker network inspect ${DOCKER_NETS}" | grep Subnet | awk -F\" '{print $4}' | egrep "^172" | sort -u | tail -1 | awk -F\. '{if ($2 != 255) print $1"."$2+1"."$3"."$4; else print "-1";}'` + sg docker -c "docker network create --subnet ${DOCKER_GW_NET} --opt com.docker.network.bridge.name=docker_gwbridge --opt com.docker.network.bridge.enable_icc=false --opt com.docker.network.bridge.enable_ip_masquerade=true --opt com.docker.network.driver.mtu=${DEFAULT_MTU} docker_gwbridge" + fi + sg docker -c "docker swarm init --advertise-addr ${DEFAULT_IP}" + return 0 +} + +function create_docker_network() { + echo "creating network" + sg docker -c "docker network create --driver=overlay --attachable --opt com.docker.network.driver.mtu=${DEFAULT_MTU} net${OSM_STACK_NAME}" + echo "creating network DONE" +} + +function deploy_lightweight() { + + echo "Deploying lightweight build" + OSM_NBI_PORT=9999 + OSM_RO_PORT=9090 + OSM_KEYSTONE_PORT=5000 + OSM_UI_PORT=80 + OSM_MON_PORT=8662 + OSM_PROM_PORT=9090 + OSM_PROM_CADVISOR_PORT=8080 + OSM_PROM_HOSTPORT=9091 + OSM_GRAFANA_PORT=3000 + [ -n "$INSTALL_ELK" ] && OSM_ELK_PORT=5601 + #[ -n "$INSTALL_PERFMON" ] && OSM_PM_PORT=3000 + + if [ -n "$NO_HOST_PORTS" ]; then + OSM_PORTS+=(OSM_NBI_PORTS=$OSM_NBI_PORT) + OSM_PORTS+=(OSM_RO_PORTS=$OSM_RO_PORT) + OSM_PORTS+=(OSM_KEYSTONE_PORTS=$OSM_KEYSTONE_PORT) + OSM_PORTS+=(OSM_UI_PORTS=$OSM_UI_PORT) + OSM_PORTS+=(OSM_MON_PORTS=$OSM_MON_PORT) + OSM_PORTS+=(OSM_PROM_PORTS=$OSM_PROM_PORT) + OSM_PORTS+=(OSM_PROM_CADVISOR_PORTS=$OSM_PROM_CADVISOR_PORT) + OSM_PORTS+=(OSM_GRAFANA_PORTS=$OSM_GRAFANA_PORT) + #[ -n "$INSTALL_PERFMON" ] && OSM_PORTS+=(OSM_PM_PORTS=$OSM_PM_PORT) + [ -n "$INSTALL_ELK" ] && OSM_PORTS+=(OSM_ELK_PORTS=$OSM_ELK_PORT) + else + OSM_PORTS+=(OSM_NBI_PORTS=$OSM_NBI_PORT:$OSM_NBI_PORT) + OSM_PORTS+=(OSM_RO_PORTS=$OSM_RO_PORT:$OSM_RO_PORT) + OSM_PORTS+=(OSM_KEYSTONE_PORTS=$OSM_KEYSTONE_PORT:$OSM_KEYSTONE_PORT) + OSM_PORTS+=(OSM_UI_PORTS=$OSM_UI_PORT:$OSM_UI_PORT) + OSM_PORTS+=(OSM_MON_PORTS=$OSM_MON_PORT:$OSM_MON_PORT) + OSM_PORTS+=(OSM_PROM_PORTS=$OSM_PROM_HOSTPORT:$OSM_PROM_PORT) + OSM_PORTS+=(OSM_PROM_CADVISOR_PORTS=$OSM_PROM_CADVISOR_PORT:$OSM_PROM_CADVISOR_PORT) + OSM_PORTS+=(OSM_GRAFANA_PORTS=$OSM_GRAFANA_PORT:$OSM_GRAFANA_PORT) + #[ -n "$INSTALL_PERFMON" ] && OSM_PORTS+=(OSM_PM_PORTS=$OSM_PM_PORT:$OSM_PM_PORT) + [ -n "$INSTALL_ELK" ] && OSM_PORTS+=(OSM_ELK_PORTS=$OSM_ELK_PORT:$OSM_ELK_PORT) + fi + echo "export ${OSM_PORTS[@]}" | $WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export OSM_NETWORK=net${OSM_STACK_NAME}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export TAG=${OSM_DOCKER_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export DOCKER_USER=${DOCKER_USER}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export KAFKA_TAG=${KAFKA_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export PROMETHEUS_TAG=${PROMETHEUS_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export KEYSTONEDB_TAG=${KEYSTONEDB_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export PROMETHEUS_CADVISOR_TAG=${PROMETHEUS_CADVISOR_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export GRAFANA_TAG=${GRAFANA_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + + pushd $OSM_DOCKER_WORK_DIR + if [ -n "$INSTALL_PLA" ]; then + track deploy_osm_pla + sg docker -c ". ./osm_ports.sh; docker stack deploy -c $OSM_DOCKER_WORK_DIR/docker-compose.yaml -c $OSM_DOCKER_WORK_DIR/docker-compose-ui.yaml -c $OSM_DOCKER_WORK_DIR/osm_pla/docker-compose.yaml $OSM_STACK_NAME" + else + sg docker -c ". ./osm_ports.sh; docker stack deploy -c $OSM_DOCKER_WORK_DIR/docker-compose.yaml -c $OSM_DOCKER_WORK_DIR/docker-compose-ui.yaml $OSM_STACK_NAME" + fi + popd + + echo "Finished deployment of lightweight build" +} + +function deploy_elk() { + echo "Pulling docker images for ELK" + sg docker -c "docker pull docker.elastic.co/elasticsearch/elasticsearch-oss:${ELASTIC_VERSION}" || FATAL "cannot get elasticsearch docker image" + sg docker -c "docker pull docker.elastic.co/beats/metricbeat:${ELASTIC_VERSION}" || FATAL "cannot get metricbeat docker image" + sg docker -c "docker pull docker.elastic.co/beats/filebeat:${ELASTIC_VERSION}" || FATAL "cannot get filebeat docker image" + sg docker -c "docker pull docker.elastic.co/kibana/kibana-oss:${ELASTIC_VERSION}" || FATAL "cannot get kibana docker image" + sg docker -c "docker pull bobrik/curator:${ELASTIC_CURATOR_VERSION}" || FATAL "cannot get curator docker image" + echo "Finished pulling elk docker images" + $WORKDIR_SUDO mkdir -p "$OSM_DOCKER_WORK_DIR/osm_elk" + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/osm_elk/* $OSM_DOCKER_WORK_DIR/osm_elk + remove_stack osm_elk + echo "Deploying ELK stack" + sg docker -c "OSM_NETWORK=net${OSM_STACK_NAME} docker stack deploy -c $OSM_DOCKER_WORK_DIR/osm_elk/docker-compose.yml osm_elk" + echo "Waiting for ELK stack to be up and running" + time=0 + step=5 + timelength=40 + elk_is_up=1 + while [ $time -le $timelength ]; do + if [[ $(curl -f -XGET http://127.0.0.1:5601/status -I 2>/dev/null | grep "HTTP/1.1 200 OK" | wc -l ) -eq 1 ]]; then + elk_is_up=0 + break + fi + sleep $step + time=$((time+step)) + done + if [ $elk_is_up -eq 0 ]; then + echo "ELK is up and running. Trying to create index pattern..." + #Create index pattern + curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/saved_objects/index-pattern/filebeat-*" \ + -d"{\"attributes\":{\"title\":\"filebeat-*\",\"timeFieldName\":\"@timestamp\"}}" 2>/dev/null + #Make it the default index + curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/kibana/settings/defaultIndex" \ + -d"{\"value\":\"filebeat-*\"}" 2>/dev/null + else + echo "Cannot connect to Kibana to create index pattern." + echo "Once Kibana is running, you can use the following instructions to create index pattern:" + echo 'curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/saved_objects/index-pattern/filebeat-*" \ + -d"{\"attributes\":{\"title\":\"filebeat-*\",\"timeFieldName\":\"@timestamp\"}}"' + echo 'curl -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/kibana/settings/defaultIndex" \ + -d"{\"value\":\"filebeat-*\"}"' + fi + echo "Finished deployment of ELK stack" + return 0 +} + +function add_local_k8scluster() { + /usr/bin/osm --all-projects vim-create \ + --name _system-osm-vim \ + --account_type dummy \ + --auth_url http://dummy \ + --user osm --password osm --tenant osm \ + --description "dummy" \ + --config '{management_network_name: mgmt}' + /usr/bin/osm --all-projects k8scluster-add \ + --creds ${HOME}/.kube/config \ + --vim _system-osm-vim \ + --k8s-nets '{"net1": null}' \ + --version '1.15' \ + --description "OSM Internal Cluster" \ + _system-osm-k8s +} + +function install_lightweight() { + track checkingroot + [ "$USER" == "root" ] && FATAL "You are running the installer as root. The installer is prepared to be executed as a normal user with sudo privileges." + track noroot + + if [ -n "$KUBERNETES" ]; then + [ -z "$ASSUME_YES" ] && ! ask_user "The installation will do the following + 1. Install and configure LXD + 2. Install juju + 3. Install docker CE + 4. Disable swap space + 5. Install and initialize Kubernetes + as pre-requirements. + Do you want to proceed (Y/n)? " y && echo "Cancelled!" && exit 1 + + else + [ -z "$ASSUME_YES" ] && ! ask_user "The installation will configure LXD, install juju, install docker CE and init a docker swarm, as pre-requirements. Do you want to proceed (Y/n)? " y && echo "Cancelled!" && exit 1 + fi + track proceed + + echo "Installing lightweight build of OSM" + LWTEMPDIR="$(mktemp -d -q --tmpdir "installosmlight.XXXXXX")" + trap 'rm -rf "${LWTEMPDIR}"' EXIT + DEFAULT_IF=$(ip route list|awk '$1=="default" {print $5; exit}') + [ -z "$DEFAULT_IF" ] && DEFAULT_IF=$(route -n |awk '$1~/^0.0.0.0/ {print $8; exit}') + [ -z "$DEFAULT_IF" ] && FATAL "Not possible to determine the interface with the default route 0.0.0.0" + DEFAULT_IP=`ip -o -4 a s ${DEFAULT_IF} |awk '{split($4,a,"/"); print a[1]}'` + [ -z "$DEFAULT_IP" ] && FATAL "Not possible to determine the IP address of the interface with the default route" + DEFAULT_MTU=$(ip addr show ${DEFAULT_IF} | perl -ne 'if (/mtu\s(\d+)/) {print $1;}') + + # if no host is passed in, we need to install lxd/juju, unless explicilty asked not to + if [ -z "$OSM_VCA_HOST" ] && [ -z "$INSTALL_NOLXD" ] && [ -z "$LXD_CLOUD_FILE" ]; then + need_packages_lw="snapd" + echo -e "Checking required packages: $need_packages_lw" + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "One or several required packages are not installed. Updating apt cache requires root privileges." \ + || sudo apt-get update \ + || FATAL "failed to run apt-get update" + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "Installing $need_packages_lw requires root privileges." \ + || sudo apt-get install -y $need_packages_lw \ + || FATAL "failed to install $need_packages_lw" + install_lxd + fi + + track prereqok + + [ -n "$INSTALL_NODOCKER" ] || (install_docker_ce && track docker_ce) + + echo "Creating folders for installation" + [ ! -d "$OSM_DOCKER_WORK_DIR" ] && $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR + [ ! -d "$OSM_DOCKER_WORK_DIR/osm_pla" -a -n "$INSTALL_PLA" ] && $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/osm_pla + [ -n "$KUBERNETES" ] && $WORKDIR_SUDO cp -b $OSM_DEVOPS/installers/docker/cluster-config.yaml $OSM_DOCKER_WORK_DIR/cluster-config.yaml + + #Installs Kubernetes + if [ -n "$KUBERNETES" ]; then + install_kube + track install_k8s + init_kubeadm $OSM_DOCKER_WORK_DIR/cluster-config.yaml + kube_config_dir + track init_k8s + if [ -n "$INSTALL_K8S_MONITOR" ]; then + # uninstall OSM MONITORING + uninstall_k8s_monitoring + track uninstall_k8s_monitoring + fi + #remove old namespace + remove_k8s_namespace $OSM_STACK_NAME + deploy_cni_provider + taint_master_node + install_helm + track install_helm + install_k8s_storageclass + track k8s_storageclass + install_k8s_metallb + track k8s_metallb + else + #install_docker_compose + [ -n "$INSTALL_NODOCKER" ] || init_docker_swarm + track docker_swarm + fi + + [ -z "$INSTALL_NOJUJU" ] && install_juju + track juju_install + + if [ -z "$OSM_VCA_HOST" ]; then + if [ -z "$CONTROLLER_NAME" ]; then + + if [ -n "$KUBERNETES" ]; then + juju_createcontroller_k8s + juju_addlxd_cloud + else + if [ -n "$LXD_CLOUD_FILE" ]; then + [ -z "$LXD_CRED_FILE" ] && FATAL "The installer needs the LXD credential yaml if the LXD is external" + OSM_VCA_CLOUDNAME="lxd-cloud" + juju add-cloud $OSM_VCA_CLOUDNAME $LXD_CLOUD_FILE --force || juju update-cloud $OSM_VCA_CLOUDNAME --client -f $LXD_CLOUD_FILE + juju add-credential $OSM_VCA_CLOUDNAME -f $LXD_CRED_FILE || juju update-credential $OSM_VCA_CLOUDNAME lxd-cloud-creds -f $LXD_CRED_FILE + fi + juju_createcontroller + juju_createproxy + fi + else + OSM_VCA_CLOUDNAME="lxd-cloud" + if [ -n "$LXD_CLOUD_FILE" ]; then + [ -z "$LXD_CRED_FILE" ] && FATAL "The installer needs the LXD credential yaml if the LXD is external" + juju add-cloud -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME $LXD_CLOUD_FILE --force || juju update-cloud lxd-cloud -c $CONTROLLER_NAME -f $LXD_CLOUD_FILE + juju add-credential -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME -f $LXD_CRED_FILE || juju update-credential lxd-cloud -c $CONTROLLER_NAME -f $LXD_CRED_FILE + else + mkdir -p ~/.osm + cat << EOF > ~/.osm/lxd-cloud.yaml +clouds: + lxd-cloud: + type: lxd + auth-types: [certificate] + endpoint: "https://$DEFAULT_IP:8443" + config: + ssl-hostname-verification: false +EOF + openssl req -nodes -new -x509 -keyout ~/.osm/client.key -out ~/.osm/client.crt -days 365 -subj "/C=FR/ST=Nice/L=Nice/O=ETSI/OU=OSM/CN=osm.etsi.org" + local server_cert=`cat /var/snap/lxd/common/lxd/server.crt | sed 's/^/ /'` + local client_cert=`cat ~/.osm/client.crt | sed 's/^/ /'` + local client_key=`cat ~/.osm/client.key | sed 's/^/ /'` + cat << EOF > ~/.osm/lxd-credentials.yaml +credentials: + lxd-cloud: + lxd-cloud: + auth-type: certificate + server-cert: | +$server_cert + client-cert: | +$client_cert + client-key: | +$client_key +EOF + lxc config trust add local: ~/.osm/client.crt + juju add-cloud -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME ~/.osm/lxd-cloud.yaml --force || juju update-cloud lxd-cloud -c $CONTROLLER_NAME -f ~/.osm/lxd-cloud.yaml + juju add-credential -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME -f ~/.osm/lxd-credentials.yaml || juju update-credential lxd-cloud -c $CONTROLLER_NAME -f ~/.osm/lxd-credentials.yaml + fi + fi + [ -z "$CONTROLLER_NAME" ] && OSM_VCA_HOST=`sg lxd -c "juju show-controller $OSM_STACK_NAME"|grep api-endpoints|awk -F\' '{print $2}'|awk -F\: '{print $1}'` + [ -n "$CONTROLLER_NAME" ] && OSM_VCA_HOST=`juju show-controller $CONTROLLER_NAME |grep api-endpoints|awk -F\' '{print $2}'|awk -F\: '{print $1}'` + [ -z "$OSM_VCA_HOST" ] && FATAL "Cannot obtain juju controller IP address" + fi + track juju_controller + + if [ -z "$OSM_VCA_SECRET" ]; then + [ -z "$CONTROLLER_NAME" ] && OSM_VCA_SECRET=$(parse_juju_password $OSM_STACK_NAME) + [ -n "$CONTROLLER_NAME" ] && OSM_VCA_SECRET=$(parse_juju_password $CONTROLLER_NAME) + [ -z "$OSM_VCA_SECRET" ] && FATAL "Cannot obtain juju secret" + fi + if [ -z "$OSM_VCA_PUBKEY" ]; then + OSM_VCA_PUBKEY=$(cat $HOME/.local/share/juju/ssh/juju_id_rsa.pub) + [ -z "$OSM_VCA_PUBKEY" ] && FATAL "Cannot obtain juju public key" + fi + if [ -z "$OSM_VCA_CACERT" ]; then + [ -z "$CONTROLLER_NAME" ] && OSM_VCA_CACERT=$(juju controllers --format json | jq -r --arg controller $OSM_STACK_NAME '.controllers[$controller]["ca-cert"]' | base64 | tr -d \\n) + [ -n "$CONTROLLER_NAME" ] && OSM_VCA_CACERT=$(juju controllers --format json | jq -r --arg controller $CONTROLLER_NAME '.controllers[$controller]["ca-cert"]' | base64 | tr -d \\n) + [ -z "$OSM_VCA_CACERT" ] && FATAL "Cannot obtain juju CA certificate" + fi + + # Set OSM_VCA_APIPROXY only when it is not a k8s installation + if [ -z "$KUBERNETES" ]; then + if [ -z "$OSM_VCA_APIPROXY" ]; then + OSM_VCA_APIPROXY=$DEFAULT_IP + [ -z "$OSM_VCA_APIPROXY" ] && FATAL "Cannot obtain juju api proxy" + fi + juju_createproxy + fi + track juju + + if [ -z "$OSM_DATABASE_COMMONKEY" ]; then + OSM_DATABASE_COMMONKEY=$(generate_secret) + [ -z "OSM_DATABASE_COMMONKEY" ] && FATAL "Cannot generate common db secret" + fi + + # Deploy OSM services + [ -z "$DOCKER_NOBUILD" ] && generate_docker_images + track docker_build + + if [ -n "$KUBERNETES" ]; then + generate_k8s_manifest_files + else + generate_docker_compose_files + fi + track manifest_files + generate_prometheus_grafana_files + generate_docker_env_files + track env_files + + if [ -n "$KUBERNETES" ]; then + deploy_charmed_services + kube_secrets + update_manifest_files + namespace_vol + deploy_osm_services + if [ -n "$INSTALL_PLA"]; then + # optional PLA install + deploy_osm_pla_service + track deploy_osm_pla + fi + track deploy_osm_services_k8s + if [ -n "$INSTALL_K8S_MONITOR" ]; then + # install OSM MONITORING + install_k8s_monitoring + track install_k8s_monitoring + fi + else + # remove old stack + remove_stack $OSM_STACK_NAME + create_docker_network + deploy_lightweight + generate_osmclient_script + track docker_deploy + install_prometheus_nodeexporter + track nodeexporter + [ -n "$INSTALL_VIMEMU" ] && install_vimemu && track vimemu + [ -n "$INSTALL_ELK" ] && deploy_elk && track elk + fi + + [ -z "$INSTALL_NOHOSTCLIENT" ] && install_osmclient + track osmclient + + echo -e "Checking OSM health state..." + if [ -n "$KUBERNETES" ]; then + $OSM_DEVOPS/installers/osm_health.sh -s ${OSM_STACK_NAME} -k || \ + echo -e "OSM is not healthy, but will probably converge to a healthy state soon." && \ + echo -e "Check OSM status with: kubectl -n ${OSM_STACK_NAME} get all" && \ + track osm_unhealthy + else + $OSM_DEVOPS/installers/osm_health.sh -s ${OSM_STACK_NAME} || \ + echo -e "OSM is not healthy, but will probably converge to a healthy state soon." && \ + echo -e "Check OSM status with: docker service ls; docker stack ps ${OSM_STACK_NAME}" && \ + track osm_unhealthy + fi + track after_healthcheck + + [ -n "$KUBERNETES" ] && add_local_k8scluster + track add_local_k8scluster + + wget -q -O- https://osm-download.etsi.org/ftp/osm-10.0-ten/README2.txt &> /dev/null + track end + return 0 +} + +function install_to_openstack() { + + if [ -z "$2" ]; then + FATAL "OpenStack installer requires a valid external network name" + fi + + # Install Pip for Python3 + $WORKDIR_SUDO apt install -y python3-pip python3-venv + $WORKDIR_SUDO -H LC_ALL=C python3 -m pip install -U pip + + # Create a venv to avoid conflicts with the host installation + python3 -m venv $OPENSTACK_PYTHON_VENV + + source $OPENSTACK_PYTHON_VENV/bin/activate + + # Install Ansible, OpenStack client and SDK, latest openstack version supported is Train + python -m pip install -U wheel + python -m pip install -U "python-openstackclient<=4.0.2" "openstacksdk>=0.12.0,<=0.36.2" "ansible>=2.10,<2.11" + + # Install the Openstack cloud module (ansible>=2.10) + ansible-galaxy collection install openstack.cloud + + export ANSIBLE_CONFIG="$OSM_DEVOPS/installers/openstack/ansible.cfg" + + OSM_INSTALLER_ARGS="${REPO_ARGS[@]}" + + ANSIBLE_VARS="external_network_name=$2 setup_volume=$3 server_name=$OPENSTACK_VM_NAME" + + if [ -n "$OPENSTACK_SSH_KEY_FILE" ]; then + ANSIBLE_VARS+=" key_file=$OPENSTACK_SSH_KEY_FILE" + fi + + if [ -n "$OPENSTACK_USERDATA_FILE" ]; then + ANSIBLE_VARS+=" userdata_file=$OPENSTACK_USERDATA_FILE" + fi + + # Execute the Ansible playbook based on openrc or clouds.yaml + if [ -e "$1" ]; then + . $1 + ansible-playbook -e installer_args="\"$OSM_INSTALLER_ARGS\"" -e "$ANSIBLE_VARS" \ + $OSM_DEVOPS/installers/openstack/site.yml + else + ansible-playbook -e installer_args="\"$OSM_INSTALLER_ARGS\"" -e "$ANSIBLE_VARS" \ + -e cloud_name=$1 $OSM_DEVOPS/installers/openstack/site.yml + fi + + # Exit from venv + deactivate + + return 0 +} + +function install_vimemu() { + echo "\nInstalling vim-emu" + EMUTEMPDIR="$(mktemp -d -q --tmpdir "installosmvimemu.XXXXXX")" + trap 'rm -rf "${EMUTEMPDIR}"' EXIT + # install prerequisites (OVS is a must for the emulator to work) + sudo apt-get install openvswitch-switch + # clone vim-emu repository (attention: branch is currently master only) + echo "Cloning vim-emu repository ..." + git clone https://osm.etsi.org/gerrit/osm/vim-emu.git $EMUTEMPDIR + # build vim-emu docker + echo "Building vim-emu Docker container..." + + sg docker -c "docker build -t vim-emu-img -f $EMUTEMPDIR/Dockerfile --no-cache $EMUTEMPDIR/" || FATAL "cannot build vim-emu-img docker image" + # start vim-emu container as daemon + echo "Starting vim-emu Docker container 'vim-emu' ..." + if [ -n "$INSTALL_LIGHTWEIGHT" ]; then + # in lightweight mode, the emulator needs to be attached to netOSM + sg docker -c "docker run --name vim-emu -t -d --restart always --privileged --pid='host' --network=net${OSM_STACK_NAME} -v /var/run/docker.sock:/var/run/docker.sock vim-emu-img python examples/osm_default_daemon_topology_2_pop.py" + else + # classic build mode + sg docker -c "docker run --name vim-emu -t -d --restart always --privileged --pid='host' -v /var/run/docker.sock:/var/run/docker.sock vim-emu-img python examples/osm_default_daemon_topology_2_pop.py" + fi + echo "Waiting for 'vim-emu' container to start ..." + sleep 5 + export VIMEMU_HOSTNAME=$(sg docker -c "docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' vim-emu") + echo "vim-emu running at ${VIMEMU_HOSTNAME} ..." + # print vim-emu connection info + echo -e "\nYou might be interested in adding the following vim-emu env variables to your .bashrc file:" + echo " export VIMEMU_HOSTNAME=${VIMEMU_HOSTNAME}" + echo -e "To add the emulated VIM to OSM you should do:" + echo " osm vim-create --name emu-vim1 --user username --password password --auth_url http://${VIMEMU_HOSTNAME}:6001/v2.0 --tenant tenantName --account_type openstack" +} + +function install_k8s_monitoring() { + # install OSM monitoring + $WORKDIR_SUDO chmod +x $OSM_DEVOPS/installers/k8s/*.sh + $WORKDIR_SUDO $OSM_DEVOPS/installers/k8s/install_osm_k8s_monitoring.sh +} + +function uninstall_k8s_monitoring() { + # uninstall OSM monitoring + $WORKDIR_SUDO $OSM_DEVOPS/installers/k8s/uninstall_osm_k8s_monitoring.sh +} + +function dump_vars(){ + echo "DEVELOP=$DEVELOP" + echo "INSTALL_FROM_SOURCE=$INSTALL_FROM_SOURCE" + echo "UNINSTALL=$UNINSTALL" + echo "UPDATE=$UPDATE" + echo "RECONFIGURE=$RECONFIGURE" + echo "TEST_INSTALLER=$TEST_INSTALLER" + echo "INSTALL_VIMEMU=$INSTALL_VIMEMU" + echo "INSTALL_PLA=$INSTALL_PLA" + echo "INSTALL_LXD=$INSTALL_LXD" + echo "INSTALL_LIGHTWEIGHT=$INSTALL_LIGHTWEIGHT" + echo "INSTALL_ONLY=$INSTALL_ONLY" + echo "INSTALL_ELK=$INSTALL_ELK" + echo "INSTALL_NOCACHELXDIMAGES=$INSTALL_NOCACHELXDIMAGES" + #echo "INSTALL_PERFMON=$INSTALL_PERFMON" + echo "INSTALL_TO_OPENSTACK=$INSTALL_TO_OPENSTACK" + echo "OPENSTACK_PUBLIC_NET_NAME=$OPENSTACK_PUBLIC_NET_NAME" + echo "OPENSTACK_OPENRC_FILE_OR_CLOUD=$OPENSTACK_OPENRC_FILE_OR_CLOUD" + echo "OPENSTACK_ATTACH_VOLUME=$OPENSTACK_ATTACH_VOLUME" + echo "OPENSTACK_SSH_KEY_FILE"="$OPENSTACK_SSH_KEY_FILE" + echo "OPENSTACK_USERDATA_FILE"="$OPENSTACK_USERDATA_FILE" + echo "OPENSTACK_VM_NAME"="$OPENSTACK_VM_NAME" + echo "INSTALL_K8S_MONITOR=$INSTALL_K8S_MONITOR" + echo "TO_REBUILD=$TO_REBUILD" + echo "INSTALL_NOLXD=$INSTALL_NOLXD" + echo "INSTALL_NODOCKER=$INSTALL_NODOCKER" + echo "INSTALL_NOJUJU=$INSTALL_NOJUJU" + echo "RELEASE=$RELEASE" + echo "REPOSITORY=$REPOSITORY" + echo "REPOSITORY_BASE=$REPOSITORY_BASE" + echo "REPOSITORY_KEY=$REPOSITORY_KEY" + echo "OSM_DEVOPS=$OSM_DEVOPS" + echo "OSM_VCA_HOST=$OSM_VCA_HOST" + echo "OSM_VCA_SECRET=$OSM_VCA_SECRET" + echo "OSM_VCA_PUBKEY=$OSM_VCA_PUBKEY" + echo "NO_HOST_PORTS=$NO_HOST_PORTS" + echo "DOCKER_NOBUILD=$DOCKER_NOBUILD" + echo "WORKDIR_SUDO=$WORKDIR_SUDO" + echo "OSM_WORK_DIR=$OSM_WORK_DIR" + echo "OSM_DOCKER_TAG=$OSM_DOCKER_TAG" + echo "DOCKER_USER=$DOCKER_USER" + echo "OSM_STACK_NAME=$OSM_STACK_NAME" + echo "PULL_IMAGES=$PULL_IMAGES" + echo "KUBERNETES=$KUBERNETES" + echo "DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL" + echo "DOCKER_PROXY_URL=$DOCKER_PROXY_URL" + echo "SHOWOPTS=$SHOWOPTS" + echo "Install from specific refspec (-b): $COMMIT_ID" +} + +function track(){ + ctime=`date +%s` + duration=$((ctime - SESSION_ID)) + url="http://www.woopra.com/track/ce?project=osm.etsi.org&cookie=${SESSION_ID}" + #url="${url}&ce_campaign_name=${CAMPAIGN_NAME}" + event_name="bin" + [ -z "$INSTALL_LIGHTWEIGHT" ] && [ -n "$INSTALL_FROM_SOURCE" ] && event_name="binsrc" + [ -z "$INSTALL_LIGHTWEIGHT" ] && [ -n "$INSTALL_FROM_LXDIMAGES" ] && event_name="lxd" + [ -n "$INSTALL_LIGHTWEIGHT" ] && event_name="lw" + event_name="${event_name}_$1" + url="${url}&event=${event_name}&ce_duration=${duration}" + wget -q -O /dev/null $url +} + +function parse_docker_registry_url() { + DOCKER_REGISTRY_USER=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); split(a[1],b,":"); print b[1]}') + DOCKER_REGISTRY_PASSWORD=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); split(a[1],b,":"); print b[2]}') + DOCKER_REGISTRY_URL=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); print a[2]}') +} + +JUJU_VERSION=2.9 +JUJU_AGENT_VERSION=2.9.9 +UNINSTALL="" +DEVELOP="" +UPDATE="" +RECONFIGURE="" +TEST_INSTALLER="" +INSTALL_LXD="" +SHOWOPTS="" +COMMIT_ID="" +ASSUME_YES="" +INSTALL_FROM_SOURCE="" +RELEASE="ReleaseTEN" +REPOSITORY="stable" +INSTALL_VIMEMU="" +INSTALL_PLA="" +LXD_REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/lxd" +LXD_REPOSITORY_PATH="" +INSTALL_LIGHTWEIGHT="y" +INSTALL_TO_OPENSTACK="" +OPENSTACK_OPENRC_FILE_OR_CLOUD="" +OPENSTACK_PUBLIC_NET_NAME="" +OPENSTACK_ATTACH_VOLUME="false" +OPENSTACK_SSH_KEY_FILE="" +OPENSTACK_USERDATA_FILE="" +OPENSTACK_VM_NAME="server-osm" +OPENSTACK_PYTHON_VENV="$HOME/.virtual-envs/osm" +INSTALL_ONLY="" +INSTALL_ELK="" +TO_REBUILD="" +INSTALL_NOLXD="" +INSTALL_NODOCKER="" +INSTALL_NOJUJU="" +KUBERNETES="y" +INSTALL_K8S_MONITOR="" +INSTALL_NOHOSTCLIENT="" +INSTALL_NOCACHELXDIMAGES="" +SESSION_ID=`date +%s` +OSM_DEVOPS= +OSM_VCA_HOST= +OSM_VCA_SECRET= +OSM_VCA_PUBKEY= +OSM_VCA_CLOUDNAME="localhost" +OSM_VCA_K8S_CLOUDNAME="k8scloud" +OSM_STACK_NAME=osm +NO_HOST_PORTS="" +DOCKER_NOBUILD="" +REPOSITORY_KEY="OSM%20ETSI%20Release%20Key.gpg" +REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/debian" +WORKDIR_SUDO=sudo +OSM_WORK_DIR="/etc/osm" +OSM_DOCKER_WORK_DIR="/etc/osm/docker" +OSM_K8S_WORK_DIR="${OSM_DOCKER_WORK_DIR}/osm_pods" +OSM_HOST_VOL="/var/lib/osm" +OSM_NAMESPACE_VOL="${OSM_HOST_VOL}/${OSM_STACK_NAME}" +OSM_DOCKER_TAG=latest +DOCKER_USER=opensourcemano +PULL_IMAGES="y" +KAFKA_TAG=2.11-1.0.2 +PROMETHEUS_TAG=v2.4.3 +GRAFANA_TAG=latest +PROMETHEUS_NODE_EXPORTER_TAG=0.18.1 +PROMETHEUS_CADVISOR_TAG=latest +KEYSTONEDB_TAG=10 +OSM_DATABASE_COMMONKEY= +ELASTIC_VERSION=6.4.2 +ELASTIC_CURATOR_VERSION=5.5.4 +POD_NETWORK_CIDR=10.244.0.0/16 +K8S_MANIFEST_DIR="/etc/kubernetes/manifests" +RE_CHECK='^[a-z0-9]([-a-z0-9]*[a-z0-9])?$' +DOCKER_REGISTRY_URL= +DOCKER_PROXY_URL= +MODULE_DOCKER_TAG= + +while getopts ":b:r:c:n:k:u:R:D:o:O:m:N:H:S:s:w:t:U:P:A:l:L:K:d:p:T:f:F:-: hy" o; do + case "${o}" in + b) + COMMIT_ID=${OPTARG} + PULL_IMAGES="" + ;; + r) + REPOSITORY="${OPTARG}" + REPO_ARGS+=(-r "$REPOSITORY") + ;; + c) + [ "${OPTARG}" == "swarm" ] && KUBERNETES="" && REPO_ARGS+=(-c "${OPTARG}") && continue + [ "${OPTARG}" == "k8s" ] && KUBERNETES="y" && continue + echo -e "Invalid argument for -i : ' $OPTARG'\n" >&2 + usage && exit 1 + ;; + k) + REPOSITORY_KEY="${OPTARG}" + REPO_ARGS+=(-k "$REPOSITORY_KEY") + ;; + u) + REPOSITORY_BASE="${OPTARG}" + REPO_ARGS+=(-u "$REPOSITORY_BASE") + ;; + R) + RELEASE="${OPTARG}" + REPO_ARGS+=(-R "$RELEASE") + ;; + D) + OSM_DEVOPS="${OPTARG}" + ;; + o) + INSTALL_ONLY="y" + [ "${OPTARG}" == "vimemu" ] && INSTALL_VIMEMU="y" && continue + [ "${OPTARG}" == "elk_stack" ] && INSTALL_ELK="y" && continue + [ "${OPTARG}" == "k8s_monitor" ] && INSTALL_K8S_MONITOR="y" && continue + ;; + O) + INSTALL_TO_OPENSTACK="y" + if [ -n "${OPTARG}" ]; then + OPENSTACK_OPENRC_FILE_OR_CLOUD="${OPTARG}" + else + echo -e "Invalid argument for -O : ' $OPTARG'\n" >&2 + usage && exit 1 + fi + ;; + f) + OPENSTACK_SSH_KEY_FILE="${OPTARG}" + ;; + F) + OPENSTACK_USERDATA_FILE="${OPTARG}" + ;; + N) + OPENSTACK_PUBLIC_NET_NAME="${OPTARG}" + ;; + m) + [ "${OPTARG}" == "NG-UI" ] && TO_REBUILD="$TO_REBUILD NG-UI" && continue + [ "${OPTARG}" == "NBI" ] && TO_REBUILD="$TO_REBUILD NBI" && continue + [ "${OPTARG}" == "LCM" ] && TO_REBUILD="$TO_REBUILD LCM" && continue + [ "${OPTARG}" == "RO" ] && TO_REBUILD="$TO_REBUILD RO" && continue + [ "${OPTARG}" == "MON" ] && TO_REBUILD="$TO_REBUILD MON" && continue + [ "${OPTARG}" == "POL" ] && TO_REBUILD="$TO_REBUILD POL" && continue + [ "${OPTARG}" == "PLA" ] && TO_REBUILD="$TO_REBUILD PLA" && continue + [ "${OPTARG}" == "osmclient" ] && TO_REBUILD="$TO_REBUILD osmclient" && continue + [ "${OPTARG}" == "KAFKA" ] && TO_REBUILD="$TO_REBUILD KAFKA" && continue + [ "${OPTARG}" == "MONGO" ] && TO_REBUILD="$TO_REBUILD MONGO" && continue + [ "${OPTARG}" == "PROMETHEUS" ] && TO_REBUILD="$TO_REBUILD PROMETHEUS" && continue + [ "${OPTARG}" == "PROMETHEUS-CADVISOR" ] && TO_REBUILD="$TO_REBUILD PROMETHEUS-CADVISOR" && continue + [ "${OPTARG}" == "KEYSTONE-DB" ] && TO_REBUILD="$TO_REBUILD KEYSTONE-DB" && continue + [ "${OPTARG}" == "GRAFANA" ] && TO_REBUILD="$TO_REBUILD GRAFANA" && continue + [ "${OPTARG}" == "NONE" ] && TO_REBUILD="$TO_REBUILD NONE" && continue + ;; + H) + OSM_VCA_HOST="${OPTARG}" + ;; + S) + OSM_VCA_SECRET="${OPTARG}" + ;; + s) + OSM_STACK_NAME="${OPTARG}" && [ -n "$KUBERNETES" ] && [[ ! "${OPTARG}" =~ $RE_CHECK ]] && echo "Namespace $OPTARG is invalid. Regex used for validation is $RE_CHECK" && exit 0 + ;; + w) + # when specifying workdir, do not use sudo for access + WORKDIR_SUDO= + OSM_WORK_DIR="${OPTARG}" + ;; + t) + OSM_DOCKER_TAG="${OPTARG}" + REPO_ARGS+=(-t "$OSM_DOCKER_TAG") + ;; + U) + DOCKER_USER="${OPTARG}" + ;; + P) + OSM_VCA_PUBKEY=$(cat ${OPTARG}) + ;; + A) + OSM_VCA_APIPROXY="${OPTARG}" + ;; + l) + LXD_CLOUD_FILE="${OPTARG}" + ;; + L) + LXD_CRED_FILE="${OPTARG}" + ;; + K) + CONTROLLER_NAME="${OPTARG}" + ;; + d) + DOCKER_REGISTRY_URL="${OPTARG}" + ;; + p) + DOCKER_PROXY_URL="${OPTARG}" + ;; + T) + MODULE_DOCKER_TAG="${OPTARG}" + ;; + -) + [ "${OPTARG}" == "help" ] && usage && exit 0 + [ "${OPTARG}" == "source" ] && INSTALL_FROM_SOURCE="y" && PULL_IMAGES="" && continue + [ "${OPTARG}" == "develop" ] && DEVELOP="y" && continue + [ "${OPTARG}" == "uninstall" ] && UNINSTALL="y" && continue + [ "${OPTARG}" == "update" ] && UPDATE="y" && continue + [ "${OPTARG}" == "reconfigure" ] && RECONFIGURE="y" && continue + [ "${OPTARG}" == "test" ] && TEST_INSTALLER="y" && continue + [ "${OPTARG}" == "lxdinstall" ] && INSTALL_LXD="y" && continue + [ "${OPTARG}" == "nolxd" ] && INSTALL_NOLXD="y" && continue + [ "${OPTARG}" == "nodocker" ] && INSTALL_NODOCKER="y" && continue + [ "${OPTARG}" == "lightweight" ] && INSTALL_LIGHTWEIGHT="y" && continue + [ "${OPTARG}" == "vimemu" ] && INSTALL_VIMEMU="y" && continue + [ "${OPTARG}" == "elk_stack" ] && INSTALL_ELK="y" && continue + [ "${OPTARG}" == "showopts" ] && SHOWOPTS="y" && continue + [ "${OPTARG}" == "nohostports" ] && NO_HOST_PORTS="y" && continue + [ "${OPTARG}" == "nojuju" ] && INSTALL_NOJUJU="y" && continue + [ "${OPTARG}" == "nodockerbuild" ] && DOCKER_NOBUILD="y" && continue + [ "${OPTARG}" == "nohostclient" ] && INSTALL_NOHOSTCLIENT="y" && continue + [ "${OPTARG}" == "pullimages" ] && continue + [ "${OPTARG}" == "k8s_monitor" ] && INSTALL_K8S_MONITOR="y" && continue + [ "${OPTARG}" == "charmed" ] && CHARMED="y" && continue + [ "${OPTARG}" == "bundle" ] && continue + [ "${OPTARG}" == "k8s" ] && continue + [ "${OPTARG}" == "lxd" ] && continue + [ "${OPTARG}" == "lxd-cred" ] && continue + [ "${OPTARG}" == "microstack" ] && continue + [ "${OPTARG}" == "overlay" ] && continue + [ "${OPTARG}" == "only-vca" ] && continue + [ "${OPTARG}" == "vca" ] && continue + [ "${OPTARG}" == "ha" ] && continue + [ "${OPTARG}" == "tag" ] && continue + [ "${OPTARG}" == "registry" ] && continue + [ "${OPTARG}" == "pla" ] && INSTALL_PLA="y" && continue + [ "${OPTARG}" == "volume" ] && OPENSTACK_ATTACH_VOLUME="true" && continue + [ "${OPTARG}" == "nocachelxdimages" ] && INSTALL_NOCACHELXDIMAGES="y" && continue + echo -e "Invalid option: '--$OPTARG'\n" >&2 + usage && exit 1 + ;; + :) + echo "Option -$OPTARG requires an argument" >&2 + usage && exit 1 + ;; + \?) + echo -e "Invalid option: '-$OPTARG'\n" >&2 + usage && exit 1 + ;; + h) + usage && exit 0 + ;; + y) + ASSUME_YES="y" + ;; + *) + usage && exit 1 + ;; + esac +done + +[ -n "$DOCKER_REGISTRY_URL" ] && parse_docker_registry_url +[ -n "$TO_REBUILD" ] && [ "$TO_REBUILD" != " NONE" ] && echo $TO_REBUILD | grep -q NONE && FATAL "Incompatible option: -m NONE cannot be used with other -m options" +[ -n "$TO_REBUILD" ] && [ "$TO_REBUILD" == " PLA" ] && [ -z "$INSTALL_PLA" ] && FATAL "Incompatible option: -m PLA cannot be used without --pla option" + +if [ -n "$SHOWOPTS" ]; then + dump_vars + exit 0 +fi + +if [ -n "$CHARMED" ]; then + if [ -n "$UNINSTALL" ]; then + ${OSM_DEVOPS}/installers/charmed_uninstall.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D /usr/share/osm-devops -t $DOCKER_TAG "$@" + else + ${OSM_DEVOPS}/installers/charmed_install.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D /usr/share/osm-devops -t $DOCKER_TAG "$@" + fi + + exit 0 +fi + +# if develop, we force master +[ -z "$COMMIT_ID" ] && [ -n "$DEVELOP" ] && COMMIT_ID="master" + +need_packages="git wget curl tar" + +[ -n "$INSTALL_TO_OPENSTACK" ] && install_to_openstack $OPENSTACK_OPENRC_FILE_OR_CLOUD $OPENSTACK_PUBLIC_NET_NAME $OPENSTACK_ATTACH_VOLUME && echo -e "\nDONE" && exit 0 + +echo -e "Checking required packages: $need_packages" +dpkg -l $need_packages &>/dev/null \ + || ! echo -e "One or several required packages are not installed. Updating apt cache requires root privileges." \ + || sudo apt-get update \ + || FATAL "failed to run apt-get update" +dpkg -l $need_packages &>/dev/null \ + || ! echo -e "Installing $need_packages requires root privileges." \ + || sudo apt-get install -y $need_packages \ + || FATAL "failed to install $need_packages" +sudo snap install jq +if [ -z "$OSM_DEVOPS" ]; then + if [ -n "$TEST_INSTALLER" ]; then + echo -e "\nUsing local devops repo for OSM installation" + OSM_DEVOPS="$(dirname $(realpath $(dirname $0)))" + else + echo -e "\nCreating temporary dir for OSM installation" + OSM_DEVOPS="$(mktemp -d -q --tmpdir "installosm.XXXXXX")" + trap 'rm -rf "$OSM_DEVOPS"' EXIT + + git clone https://osm.etsi.org/gerrit/osm/devops.git $OSM_DEVOPS + + if [ -z "$COMMIT_ID" ]; then + echo -e "\nGuessing the current stable release" + LATEST_STABLE_DEVOPS=`git -C $OSM_DEVOPS tag -l v[0-9].* | sort -V | tail -n1` + [ -z "$LATEST_STABLE_DEVOPS" ] && echo "Could not find the current latest stable release" && exit 0 + + echo "Latest tag in devops repo: $LATEST_STABLE_DEVOPS" + COMMIT_ID="tags/$LATEST_STABLE_DEVOPS" + else + echo -e "\nDEVOPS Using commit $COMMIT_ID" + fi + git -C $OSM_DEVOPS checkout $COMMIT_ID + fi +fi + +. $OSM_DEVOPS/common/all_funcs + +[ "${OSM_STACK_NAME}" == "osm" ] || OSM_DOCKER_WORK_DIR="$OSM_WORK_DIR/stack/$OSM_STACK_NAME" +[ -n "$KUBERNETES" ] && OSM_K8S_WORK_DIR="$OSM_DOCKER_WORK_DIR/osm_pods" && OSM_NAMESPACE_VOL="${OSM_HOST_VOL}/${OSM_STACK_NAME}" +[ -n "$INSTALL_LIGHTWEIGHT" ] && [ -n "$UNINSTALL" ] && uninstall_lightweight && echo -e "\nDONE" && exit 0 +[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_ELK" ] && deploy_elk +#[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_PERFMON" ] && deploy_perfmon +[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_VIMEMU" ] && install_vimemu +[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_K8S_MONITOR" ] && install_k8s_monitoring +[ -n "$INSTALL_ONLY" ] && echo -e "\nDONE" && exit 0 + +#Installation starts here +wget -q -O- https://osm-download.etsi.org/ftp/osm-10.0-ten/README.txt &> /dev/null +track start + +[ -n "$INSTALL_LIGHTWEIGHT" ] && install_lightweight && echo -e "\nDONE" && exit 0 +echo -e "\nInstalling OSM from refspec: $COMMIT_ID" +if [ -n "$INSTALL_FROM_SOURCE" ] && [ -z "$ASSUME_YES" ]; then + ! ask_user "The installation will take about 75-90 minutes. Continue (Y/n)? " y && echo "Cancelled!" && exit 1 +fi + +echo -e "Checking required packages: lxd" +lxd --version &>/dev/null || FATAL "lxd not present, exiting." +[ -n "$INSTALL_LXD" ] && echo -e "\nInstalling and configuring lxd" && install_lxd + +# use local devops for containers +export OSM_USE_LOCAL_DEVOPS=true + +#Install osmclient + +#Install vim-emu (optional) +[ -n "$INSTALL_VIMEMU" ] && install_docker_ce && install_vimemu + +wget -q -O- https://osm-download.etsi.org/ftp/osm-10.0-ten/README2.txt &> /dev/null +track end +echo -e "\nDONE" diff --git a/_tmp/osm-install/patched.install_osm.sh b/_tmp/osm-install/patched.install_osm.sh new file mode 100755 index 0000000..76c63e5 --- /dev/null +++ b/_tmp/osm-install/patched.install_osm.sh @@ -0,0 +1,160 @@ +#!/bin/bash +# +# 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. +# +REPOSITORY_BASE=https://osm-download.etsi.org/repository/osm/debian +RELEASE=ReleaseTEN +REPOSITORY=stable +DOCKER_TAG=10 +DEVOPS_PATH=/usr/share/osm-devops + +function usage(){ + echo -e "usage: $0 [OPTIONS]" + echo -e "Install OSM from binaries or source code (by default, from binaries)" + echo -e " OPTIONS" + echo -e " -h / --help: print this help" + echo -e " -y: do not prompt for confirmation, assumes yes" + echo -e " -r : use specified repository name for osm packages" + echo -e " -R : use specified release for osm binaries (deb packages, lxd images, ...)" + echo -e " -u : use specified repository url for osm packages" + echo -e " -k : use specified repository public key url" + echo -e " -b : install OSM from source code using a specific branch (master, v2.0, ...) or tag" + echo -e " -b master (main dev branch)" + echo -e " -b v2.0 (v2.0 branch)" + echo -e " -b tags/v1.1.0 (a specific tag)" + echo -e " ..." + echo -e " -c deploy osm services using container . Valid values are or . If -c is not used then osm will be deployed using default orchestrator. When used with --uninstall, osm services deployed by the orchestrator will be uninstalled" + echo -e " -s or user defined stack name when installed using swarm or namespace when installed using k8s, default is osm" + echo -e " -H use specific juju host controller IP" + echo -e " -S use VCA/juju secret key" + echo -e " -P use VCA/juju public key file" + echo -e " -C use VCA/juju CA certificate file" + echo -e " -A use VCA/juju API proxy" + echo -e " --vimemu: additionally deploy the VIM emulator as a docker container" + echo -e " --elk_stack: additionally deploy an ELK docker stack for event logging" + echo -e " --pla: install the PLA module for placement support" + echo -e " -m : install OSM but only rebuild the specified docker images (LW-UI, NBI, LCM, RO, MON, POL, KAFKA, MONGO, PROMETHEUS, PROMETHEUS-CADVISOR, KEYSTONE-DB, PLA, NONE)" + echo -e " -o : ONLY (un)installs one of the addons (vimemu, elk_stack, k8s_monitor)" + echo -e " -O : Install OSM to an OpenStack infrastructure. is required. If a is used, the clouds.yaml file should be under ~/.config/openstack/ or /etc/openstack/" + echo -e " -N : Public network name required to setup OSM to OpenStack" + echo -e " -D use local devops installation path" + echo -e " -w Location to store runtime installation" + echo -e " -t specify osm docker tag (default is latest)" + echo -e " -l: LXD cloud yaml file" + echo -e " -L: LXD credentials yaml file" + echo -e " -K: Specifies the name of the controller to use - The controller must be already bootstrapped" + echo -e " -d use docker registry URL instead of dockerhub" + echo -e " -p set docker proxy URL as part of docker CE configuration" + echo -e " -T specify docker tag for the modules specified with option -m" + echo -e " --nocachelxdimages: do not cache local lxd images, do not create cronjob for that cache (will save installation time, might affect instantiation time)" + echo -e " --nolxd: do not install and configure LXD, allowing unattended installations (assumes LXD is already installed and confifured)" + echo -e " --nodocker: do not install docker, do not initialize a swarm (assumes docker is already installed and a swarm has been initialized)" + echo -e " --nojuju: do not juju, assumes already installed" + echo -e " --nodockerbuild:do not build docker images (use existing locally cached images)" + echo -e " --nohostports: do not expose docker ports to host (useful for creating multiple instances of osm on the same host)" + echo -e " --nohostclient: do not install the osmclient" + echo -e " --uninstall: uninstall OSM: remove the containers and delete NAT rules" + echo -e " --source: install OSM from source code using the latest stable tag" + echo -e " --develop: (deprecated, use '-b master') install OSM from source code using the master branch" + echo -e " --pullimages: pull/run osm images from docker.io/opensourcemano" + echo -e " --k8s_monitor: install the OSM kubernetes monitoring with prometheus and grafana" + echo -e " --volume: create a VM volume when installing to OpenStack" + echo -e " --showopts: print chosen options and exit (only for debugging)" + echo -e " --charmed: Deploy and operate OSM with Charms on k8s" + echo -e " [--bundle ]: Specify with which bundle to deploy OSM with charms (--charmed option)" + echo -e " [--k8s ]: Specify with which kubernetes to deploy OSM with charms (--charmed option)" + echo -e " [--vca ]: Specifies the name of the controller to use - The controller must be already bootstrapped (--charmed option)" + echo -e " [--lxd ]: Takes a YAML file as a parameter with the LXD Cloud information (--charmed option)" + echo -e " [--lxd-cred ]: Takes a YAML file as a parameter with the LXD Credentials information (--charmed option)" + echo -e " [--microstack]: Installs microstack as a vim. (--charmed option)" + echo -e " [--overlay]: Add an overlay to override some defaults of the default bundle (--charmed option)" + echo -e " [--ha]: Installs High Availability bundle. (--charmed option)" + echo -e " [--tag]: Docker image tag. (--charmed option)" + echo -e " [--registry]: Docker registry with optional credentials as user:pass@hostname:port (--charmed option)" + +} + +add_repo() { + REPO_CHECK="^$1" + grep "${REPO_CHECK/\[arch=amd64\]/\\[arch=amd64\\]}" /etc/apt/sources.list > /dev/null 2>&1 + if [ $? -ne 0 ] + then + need_packages_lw="software-properties-common apt-transport-https" + echo -e "Checking required packages: $need_packages_lw" + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "One or several required packages are not installed. Updating apt cache requires root privileges." \ + || sudo apt-get -q update \ + || ! echo "failed to run apt-get update" \ + || exit 1 + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "Installing $need_packages_lw requires root privileges." \ + || sudo apt-get install -y $need_packages_lw \ + || ! echo "failed to install $need_packages_lw" \ + || exit 1 + wget -qO - $REPOSITORY_BASE/$RELEASE/OSM%20ETSI%20Release%20Key.gpg | sudo apt-key add - + sudo DEBIAN_FRONTEND=noninteractive add-apt-repository -y "$1" && sudo DEBIAN_FRONTEND=noninteractive apt-get update + return 0 + fi + + return 1 +} + +clean_old_repo() { +dpkg -s 'osm-devops' &> /dev/null +if [ $? -eq 0 ]; then + # Clean the previous repos that might exist + sudo sed -i "/osm-download.etsi.org/d" /etc/apt/sources.list +fi +} + +while getopts ":b:r:c:n:k:u:R:l:L:K:p:D:o:O:m:N:H:S:s:w:t:U:P:A:d:p:f:F:-: hy" o; do + case "${o}" in + D) + DEVOPS_PATH="${OPTARG}" + ;; + r) + REPOSITORY="${OPTARG}" + ;; + R) + RELEASE="${OPTARG}" + ;; + u) + REPOSITORY_BASE="${OPTARG}" + ;; + t) + DOCKER_TAG="${OPTARG}" + ;; + -) + [ "${OPTARG}" == "help" ] && usage && exit 0 + ;; + :) + echo "Option -$OPTARG requires an argument" >&2 + usage && exit 1 + ;; + \?) + echo -e "Invalid option: '-$OPTARG'\n" >&2 + usage && exit 1 + ;; + h) + usage && exit 0 + ;; + *) + ;; + esac +done + +clean_old_repo +add_repo "deb [arch=amd64] $REPOSITORY_BASE/$RELEASE $REPOSITORY devops" +sudo DEBIAN_FRONTEND=noninteractive apt-get -q update +sudo DEBIAN_FRONTEND=noninteractive apt-get install osm-devops +./patched.full_install_osm.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D $DEVOPS_PATH -t $DOCKER_TAG "$@" diff --git a/_tmp/osm-install/rel10.full_install_osm.sh b/_tmp/osm-install/rel10.full_install_osm.sh new file mode 100644 index 0000000..0d8d653 --- /dev/null +++ b/_tmp/osm-install/rel10.full_install_osm.sh @@ -0,0 +1,1896 @@ +#!/bin/bash +# Copyright 2016 Telefónica Investigación y Desarrollo S.A.U. +# +# 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. + +function usage(){ + echo -e "usage: $0 [OPTIONS]" + echo -e "Install OSM from binaries or source code (by default, from binaries)" + echo -e " OPTIONS" + echo -e " -h / --help: print this help" + echo -e " -y: do not prompt for confirmation, assumes yes" + echo -e " -r : use specified repository name for osm packages" + echo -e " -R : use specified release for osm binaries (deb packages, lxd images, ...)" + echo -e " -u : use specified repository url for osm packages" + echo -e " -k : use specified repository public key url" + echo -e " -b : install OSM from source code using a specific branch (master, v2.0, ...) or tag" + echo -e " -b master (main dev branch)" + echo -e " -b v2.0 (v2.0 branch)" + echo -e " -b tags/v1.1.0 (a specific tag)" + echo -e " ..." + echo -e " -c deploy osm services using container . Valid values are or . If -c is not used then osm will be deployed using default orchestrator. When used with --uninstall, osm services deployed by the orchestrator will be uninstalled" + echo -e " -s or user defined stack name when installed using swarm or namespace when installed using k8s, default is osm" + echo -e " -H use specific juju host controller IP" + echo -e " -S use VCA/juju secret key" + echo -e " -P use VCA/juju public key file" + echo -e " -C use VCA/juju CA certificate file" + echo -e " -A use VCA/juju API proxy" + echo -e " --vimemu: additionally deploy the VIM emulator as a docker container" + echo -e " --elk_stack: additionally deploy an ELK docker stack for event logging" + echo -e " --pla: install the PLA module for placement support" + echo -e " -m : install OSM but only rebuild or pull the specified docker images (NG-UI, NBI, LCM, RO, MON, POL, PLA, KAFKA, MONGO, PROMETHEUS, PROMETHEUS-CADVISOR, KEYSTONE-DB, NONE)" + echo -e " -o : ONLY (un)installs one of the addons (vimemu, elk_stack, k8s_monitor)" + echo -e " -O : Install OSM to an OpenStack infrastructure. is required. If a is used, the clouds.yaml file should be under ~/.config/openstack/ or /etc/openstack/" + echo -e " -N : Public network name required to setup OSM to OpenStack" + echo -e " -f : Public SSH key to use to deploy OSM to OpenStack" + echo -e " -F : Cloud-Init userdata file to deploy OSM to OpenStack" + echo -e " -D use local devops installation path" + echo -e " -w Location to store runtime installation" + echo -e " -t specify osm docker tag (default is latest)" + echo -e " -l: LXD cloud yaml file" + echo -e " -L: LXD credentials yaml file" + echo -e " -K: Specifies the name of the controller to use - The controller must be already bootstrapped" + echo -e " -d use docker registry URL instead of dockerhub" + echo -e " -p set docker proxy URL as part of docker CE configuration" + echo -e " -T specify docker tag for the modules specified with option -m" + echo -e " --nocachelxdimages: do not cache local lxd images, do not create cronjob for that cache (will save installation time, might affect instantiation time)" + echo -e " --nolxd: do not install and configure LXD, allowing unattended installations (assumes LXD is already installed and confifured)" + echo -e " --nodocker: do not install docker, do not initialize a swarm (assumes docker is already installed and a swarm has been initialized)" + echo -e " --nojuju: do not juju, assumes already installed" + echo -e " --nodockerbuild:do not build docker images (use existing locally cached images)" + echo -e " --nohostports: do not expose docker ports to host (useful for creating multiple instances of osm on the same host)" + echo -e " --nohostclient: do not install the osmclient" + echo -e " --uninstall: uninstall OSM: remove the containers and delete NAT rules" + echo -e " --source: install OSM from source code using the latest stable tag" + echo -e " --develop: (deprecated, use '-b master') install OSM from source code using the master branch" + echo -e " --pullimages: pull/run osm images from docker.io/opensourcemano" + echo -e " --k8s_monitor: install the OSM kubernetes monitoring with prometheus and grafana" + echo -e " --volume: create a VM volume when installing to OpenStack" +# echo -e " --reconfigure: reconfigure the modules (DO NOT change NAT rules)" +# echo -e " --update: update to the latest stable release or to the latest commit if using a specific branch" + echo -e " --showopts: print chosen options and exit (only for debugging)" + echo -e " --charmed: Deploy and operate OSM with Charms on k8s" + echo -e " [--bundle ]: Specify with which bundle to deploy OSM with charms (--charmed option)" + echo -e " [--k8s ]: Specify with which kubernetes to deploy OSM with charms (--charmed option)" + echo -e " [--vca ]: Specifies the name of the controller to use - The controller must be already bootstrapped (--charmed option)" + echo -e " [--lxd ]: Takes a YAML file as a parameter with the LXD Cloud information (--charmed option)" + echo -e " [--lxd-cred ]: Takes a YAML file as a parameter with the LXD Credentials information (--charmed option)" + echo -e " [--microstack]: Installs microstack as a vim. (--charmed option)" + echo -e " [--overlay]: Add an overlay to override some defaults of the default bundle (--charmed option)" + echo -e " [--ha]: Installs High Availability bundle. (--charmed option)" + echo -e " [--tag]: Docker image tag. (--charmed option)" + echo -e " [--registry]: Docker registry with optional credentials as user:pass@hostname:port (--charmed option)" + +} + +# takes a juju/accounts.yaml file and returns the password specific +# for a controller. I wrote this using only bash tools to minimize +# additions of other packages +function parse_juju_password { + password_file="${HOME}/.local/share/juju/accounts.yaml" + local controller_name=$1 + local s='[[:space:]]*' w='[a-zA-Z0-9_-]*' fs=$(echo @|tr @ '\034') + sed -ne "s|^\($s\):|\1|" \ + -e "s|^\($s\)\($w\)$s:$s[\"']\(.*\)[\"']$s\$|\1$fs\2$fs\3|p" \ + -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" $password_file | + awk -F$fs -v controller=$controller_name '{ + indent = length($1)/2; + vname[indent] = $2; + for (i in vname) {if (i > indent) {delete vname[i]}} + if (length($3) > 0) { + vn=""; for (i=0; i/dev/null; then + echo -e " Not installed.\nInstalling iptables-persistent requires root privileges" + echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections + echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections + sudo apt-get -yq install iptables-persistent + fi +} + +#Configure NAT rules, based on the current IP addresses of containers +function nat(){ + check_install_iptables_persistent + + echo -e "\nConfiguring NAT rules" + echo -e " Required root privileges" + sudo $OSM_DEVOPS/installers/nat_osm +} + +function FATAL(){ + echo "FATAL error: Cannot install OSM due to \"$1\"" + exit 1 +} + +function update_juju_images(){ + crontab -l | grep update-juju-lxc-images || (crontab -l 2>/dev/null; echo "0 4 * * 6 $USER ${OSM_DEVOPS}/installers/update-juju-lxc-images --xenial --bionic") | crontab - + ${OSM_DEVOPS}/installers/update-juju-lxc-images --xenial --bionic +} + +function install_lxd() { + # Apply sysctl production values for optimal performance + sudo cp ${OSM_DEVOPS}/installers/60-lxd-production.conf /etc/sysctl.d/60-lxd-production.conf + sudo sysctl --system + + # Install LXD snap + sudo apt-get remove --purge -y liblxc1 lxc-common lxcfs lxd lxd-client + sudo snap install lxd + + # Configure LXD + sudo usermod -a -G lxd `whoami` + cat ${OSM_DEVOPS}/installers/lxd-preseed.conf | sed 's/^config: {}/config:\n core.https_address: '$DEFAULT_IP':8443/' | sg lxd -c "lxd init --preseed" + sg lxd -c "lxd waitready" + DEFAULT_INTERFACE=$(ip route list|awk '$1=="default" {print $5; exit}') + [ -z "$DEFAULT_INTERFACE" ] && DEFAULT_INTERFACE=$(route -n |awk '$1~/^0.0.0.0/ {print $8; exit}') + DEFAULT_MTU=$(ip addr show $DEFAULT_INTERFACE | perl -ne 'if (/mtu\s(\d+)/) {print $1;}') + sg lxd -c "lxc profile device set default eth0 mtu $DEFAULT_MTU" + sg lxd -c "lxc network set lxdbr0 bridge.mtu $DEFAULT_MTU" + #sudo systemctl stop lxd-bridge + #sudo systemctl --system daemon-reload + #sudo systemctl enable lxd-bridge + #sudo systemctl start lxd-bridge +} + +function ask_user(){ + # ask to the user and parse a response among 'y', 'yes', 'n' or 'no'. Case insensitive + # Params: $1 text to ask; $2 Action by default, can be 'y' for yes, 'n' for no, other or empty for not allowed + # Return: true(0) if user type 'yes'; false (1) if user type 'no' + read -e -p "$1" USER_CONFIRMATION + while true ; do + [ -z "$USER_CONFIRMATION" ] && [ "$2" == 'y' ] && return 0 + [ -z "$USER_CONFIRMATION" ] && [ "$2" == 'n' ] && return 1 + [ "${USER_CONFIRMATION,,}" == "yes" ] || [ "${USER_CONFIRMATION,,}" == "y" ] && return 0 + [ "${USER_CONFIRMATION,,}" == "no" ] || [ "${USER_CONFIRMATION,,}" == "n" ] && return 1 + read -e -p "Please type 'yes' or 'no': " USER_CONFIRMATION + done +} + +function install_osmclient(){ + CLIENT_RELEASE=${RELEASE#"-R "} + CLIENT_REPOSITORY_KEY="OSM%20ETSI%20Release%20Key.gpg" + CLIENT_REPOSITORY=${REPOSITORY#"-r "} + CLIENT_REPOSITORY_BASE=${REPOSITORY_BASE#"-u "} + key_location=$CLIENT_REPOSITORY_BASE/$CLIENT_RELEASE/$CLIENT_REPOSITORY_KEY + curl $key_location | sudo apt-key add - + sudo add-apt-repository -y "deb [arch=amd64] $CLIENT_REPOSITORY_BASE/$CLIENT_RELEASE $CLIENT_REPOSITORY osmclient IM" + sudo apt-get update + sudo apt-get install -y python3-pip + sudo -H LC_ALL=C python3 -m pip install -U pip + sudo -H LC_ALL=C python3 -m pip install -U python-magic pyangbind verboselogs + sudo apt-get install -y python3-osm-im python3-osmclient + if [ -f /usr/lib/python3/dist-packages/osm_im/requirements.txt ]; then + python3 -m pip install -r /usr/lib/python3/dist-packages/osm_im/requirements.txt + fi + if [ -f /usr/lib/python3/dist-packages/osmclient/requirements.txt ]; then + sudo apt-get install -y libcurl4-openssl-dev libssl-dev + python3 -m pip install -r /usr/lib/python3/dist-packages/osmclient/requirements.txt + fi + #sed 's,OSM_SOL005=[^$]*,OSM_SOL005=True,' -i ${HOME}/.bashrc + #echo 'export OSM_HOSTNAME=localhost' >> ${HOME}/.bashrc + #echo 'export OSM_SOL005=True' >> ${HOME}/.bashrc + [ -z "$INSTALL_LIGHTWEIGHT" ] && export OSM_HOSTNAME=`lxc list | awk '($2=="SO-ub"){print $6}'` + [ -z "$INSTALL_LIGHTWEIGHT" ] && export OSM_RO_HOSTNAME=`lxc list | awk '($2=="RO"){print $6}'` + echo -e "\nOSM client installed" + if [ -z "$INSTALL_LIGHTWEIGHT" ]; then + echo -e "You might be interested in adding the following OSM client env variables to your .bashrc file:" + echo " export OSM_HOSTNAME=${OSM_HOSTNAME}" + echo " export OSM_RO_HOSTNAME=${OSM_RO_HOSTNAME}" + else + echo -e "OSM client assumes that OSM host is running in localhost (127.0.0.1)." + echo -e "In case you want to interact with a different OSM host, you will have to configure this env variable in your .bashrc file:" + echo " export OSM_HOSTNAME=" + fi + return 0 +} + +function install_prometheus_nodeexporter(){ + if (systemctl -q is-active node_exporter) + then + echo "Node Exporter is already running." + else + echo "Node Exporter is not active, installing..." + if getent passwd node_exporter > /dev/null 2>&1; then + echo "node_exporter user exists" + else + echo "Creating user node_exporter" + sudo useradd --no-create-home --shell /bin/false node_exporter + fi + wget -q https://github.com/prometheus/node_exporter/releases/download/v$PROMETHEUS_NODE_EXPORTER_TAG/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64.tar.gz -P /tmp/ + sudo tar -C /tmp -xf /tmp/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64.tar.gz + sudo cp /tmp/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64/node_exporter /usr/local/bin + sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter + sudo rm -rf /tmp/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64* + sudo cp ${OSM_DEVOPS}/installers/docker/prometheus_exporters/node_exporter.service /etc/systemd/system/node_exporter.service + sudo systemctl daemon-reload + sudo systemctl restart node_exporter + sudo systemctl enable node_exporter + echo "Node Exporter has been activated in this host." + fi + return 0 +} + +function uninstall_prometheus_nodeexporter(){ + sudo systemctl stop node_exporter + sudo systemctl disable node_exporter + sudo rm /etc/systemd/system/node_exporter.service + sudo systemctl daemon-reload + sudo userdel node_exporter + sudo rm /usr/local/bin/node_exporter + return 0 +} + +function install_docker_ce() { + # installs and configures Docker CE + echo "Installing Docker CE ..." + sudo apt-get -qq update + sudo apt-get install -y apt-transport-https ca-certificates software-properties-common + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - + sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" + sudo apt-get -qq update + sudo apt-get install -y docker-ce + echo "Adding user to group 'docker'" + sudo groupadd -f docker + sudo usermod -aG docker $USER + sleep 2 + sudo service docker restart + echo "... restarted Docker service" + if [ -n "${DOCKER_PROXY_URL}" ]; then + echo "Configuring docker proxy ..." + if [ -f /etc/docker/daemon.json ]; then + if grep -q registry-mirrors /etc/docker/daemon.json; then + sudo sed -i "s|registry-mirrors.*|registry-mirrors\": [\"${DOCKER_PROXY_URL}\"] |" /etc/docker/daemon.json + else + sudo sed -i "s|{|{\n \"registry-mirrors\": [\"${DOCKER_PROXY_URL}\"],|" /etc/docker/daemon.json + fi + else + sudo bash -c "cat << EOF > /etc/docker/daemon.json +{ + \"registry-mirrors\": [\"${DOCKER_PROXY_URL}\"] +} +EOF" + fi + sudo systemctl daemon-reload + sudo service docker restart + echo "... restarted Docker service again" + fi + sg docker -c "docker version" || FATAL "Docker installation failed" + echo "... Docker CE installation done" + return 0 +} + +function install_docker_compose() { + # installs and configures docker-compose + echo "Installing Docker Compose ..." + sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose + sudo chmod +x /usr/local/bin/docker-compose + echo "... Docker Compose installation done" +} + +function install_juju() { + echo "Installing juju" + sudo snap install juju --classic --channel=2.8/stable + [[ ":$PATH": != *":/snap/bin:"* ]] && PATH="/snap/bin:${PATH}" + [ -n "$INSTALL_NOCACHELXDIMAGES" ] || update_juju_images + echo "Finished installation of juju" + return 0 +} + +function juju_createcontroller() { + if ! juju show-controller $OSM_STACK_NAME &> /dev/null; then + # Not found created, create the controller + sudo usermod -a -G lxd ${USER} + sg lxd -c "juju bootstrap --bootstrap-series=xenial --agent-version=$JUJU_AGENT_VERSION $OSM_VCA_CLOUDNAME $OSM_STACK_NAME" + fi + [ $(juju controllers | awk "/^${OSM_STACK_NAME}[\*| ]/{print $1}"|wc -l) -eq 1 ] || FATAL "Juju installation failed" + juju controller-config features=[k8s-operators] +} + +function juju_addk8s() { + cat $HOME/.kube/config | juju add-k8s $OSM_VCA_K8S_CLOUDNAME --controller $OSM_STACK_NAME --storage openebs-hostpath +} + +function juju_createcontroller_k8s(){ + cat $HOME/.kube/config | juju add-k8s $OSM_VCA_K8S_CLOUDNAME --client + juju bootstrap $OSM_VCA_K8S_CLOUDNAME $OSM_STACK_NAME \ + --config controller-service-type=loadbalancer \ + --agent-version=$JUJU_AGENT_VERSION +} + + +function juju_addlxd_cloud(){ + mkdir -p /tmp/.osm + OSM_VCA_CLOUDNAME="lxd-cloud" + LXDENDPOINT=$DEFAULT_IP + LXD_CLOUD=/tmp/.osm/lxd-cloud.yaml + LXD_CREDENTIALS=/tmp/.osm/lxd-credentials.yaml + + cat << EOF > $LXD_CLOUD +clouds: + $OSM_VCA_CLOUDNAME: + type: lxd + auth-types: [certificate] + endpoint: "https://$LXDENDPOINT:8443" + config: + ssl-hostname-verification: false +EOF + openssl req -nodes -new -x509 -keyout /tmp/.osm/client.key -out /tmp/.osm/client.crt -days 365 -subj "/C=FR/ST=Nice/L=Nice/O=ETSI/OU=OSM/CN=osm.etsi.org" + local server_cert=`cat /var/snap/lxd/common/lxd/server.crt | sed 's/^/ /'` + local client_cert=`cat /tmp/.osm/client.crt | sed 's/^/ /'` + local client_key=`cat /tmp/.osm/client.key | sed 's/^/ /'` + + cat << EOF > $LXD_CREDENTIALS +credentials: + $OSM_VCA_CLOUDNAME: + lxd-cloud: + auth-type: certificate + server-cert: | +$server_cert + client-cert: | +$client_cert + client-key: | +$client_key +EOF + lxc config trust add local: /tmp/.osm/client.crt + juju add-cloud -c $OSM_STACK_NAME $OSM_VCA_CLOUDNAME $LXD_CLOUD --force + juju add-credential -c $OSM_STACK_NAME $OSM_VCA_CLOUDNAME -f $LXD_CREDENTIALS + sg lxd -c "lxd waitready" + juju controller-config features=[k8s-operators] +} + + +function juju_createproxy() { + check_install_iptables_persistent + + if ! sudo iptables -t nat -C PREROUTING -p tcp -m tcp -d $DEFAULT_IP --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST; then + sudo iptables -t nat -A PREROUTING -p tcp -m tcp -d $DEFAULT_IP --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST + sudo netfilter-persistent save + fi +} + +function docker_login() { + echo "Docker login" + sg docker -c "docker login -u ${DOCKER_REGISTRY_USER} -p ${DOCKER_REGISTRY_PASSWORD}" +} + +function generate_docker_images() { + echo "Pulling and generating docker images" + [ -n "${DOCKER_REGISTRY_URL}" ] && docker_login + + echo "Pulling docker images" + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q KAFKA ; then + sg docker -c "docker pull wurstmeister/zookeeper" || FATAL "cannot get zookeeper docker image" + sg docker -c "docker pull wurstmeister/kafka:${KAFKA_TAG}" || FATAL "cannot get kafka docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q MONGO ; then + sg docker -c "docker pull mongo" || FATAL "cannot get mongo docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q PROMETHEUS ; then + sg docker -c "docker pull prom/prometheus:${PROMETHEUS_TAG}" || FATAL "cannot get prometheus docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q PROMETHEUS-CADVISOR ; then + sg docker -c "docker pull google/cadvisor:${PROMETHEUS_CADVISOR_TAG}" || FATAL "cannot get prometheus cadvisor docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q GRAFANA ; then + sg docker -c "docker pull grafana/grafana:${GRAFANA_TAG}" || FATAL "cannot get grafana docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q NBI || echo $TO_REBUILD | grep -q KEYSTONE-DB ; then + sg docker -c "docker pull mariadb:${KEYSTONEDB_TAG}" || FATAL "cannot get keystone-db docker image" + fi + + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q RO ; then + sg docker -c "docker pull mysql:5" || FATAL "cannot get mysql docker image" + fi + + if [ -n "$PULL_IMAGES" ]; then + echo "Pulling OSM docker images" + for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA osmclient; do + module_lower=${module,,} + if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then + continue + fi + module_tag="${OSM_DOCKER_TAG}" + if [ -n "${MODULE_DOCKER_TAG}" ] && echo $TO_REBUILD | grep -q $module ; then + module_tag="${MODULE_DOCKER_TAG}" + fi + echo "Pulling ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag} docker image" + sg docker -c "docker pull ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag}" || FATAL "cannot pull $module docker image" + done + else + _build_from=$COMMIT_ID + [ -z "$_build_from" ] && _build_from="latest" + echo "OSM Docker images generated from $_build_from" + + for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA; do + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q ${module} ; then + module_lower=${module,,} + if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then + continue + fi + git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/$module + git -C ${LWTEMPDIR}/${module} checkout ${COMMIT_ID} + sg docker -c "docker build ${LWTEMPDIR}/${module} -f ${LWTEMPDIR}/${module}/docker/Dockerfile -t ${DOCKER_USER}/${module_lower} --no-cache" || FATAL "cannot build ${module} docker image" + fi + done + if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q osmclient; then + BUILD_ARGS+=(--build-arg REPOSITORY="$REPOSITORY") + BUILD_ARGS+=(--build-arg RELEASE="$RELEASE") + BUILD_ARGS+=(--build-arg REPOSITORY_KEY="$REPOSITORY_KEY") + BUILD_ARGS+=(--build-arg REPOSITORY_BASE="$REPOSITORY_BASE") + sg docker -c "docker build -t ${DOCKER_USER}/osmclient ${BUILD_ARGS[@]} -f $OSM_DEVOPS/docker/osmclient ." + fi + echo "Finished generation of docker images" + fi + + echo "Finished pulling and generating docker images" +} + +function cmp_overwrite() { + file1="$1" + file2="$2" + if ! $(cmp "${file1}" "${file2}" >/dev/null 2>&1); then + if [ -f "${file2}" ]; then + ask_user "The file ${file2} already exists. Overwrite (y/N)? " n && cp -b ${file1} ${file2} + else + cp -b ${file1} ${file2} + fi + fi +} + +function generate_docker_compose_files() { + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/docker-compose.yaml $OSM_DOCKER_WORK_DIR/docker-compose.yaml + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/docker-compose-ngui.yaml $OSM_DOCKER_WORK_DIR/docker-compose-ui.yaml + if [ -n "$INSTALL_PLA" ]; then + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/osm_pla/docker-compose.yaml $OSM_DOCKER_WORK_DIR/osm_pla/docker-compose.yaml + fi +} + +function generate_k8s_manifest_files() { + #Kubernetes resources + $WORKDIR_SUDO cp -bR ${OSM_DEVOPS}/installers/docker/osm_pods $OSM_DOCKER_WORK_DIR + $WORKDIR_SUDO rm -f $OSM_K8S_WORK_DIR/mongo.yaml +} + +function generate_prometheus_grafana_files() { + [ -n "$KUBERNETES" ] && return + # Prometheus files + $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/prometheus + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/prometheus/prometheus.yml $OSM_DOCKER_WORK_DIR/prometheus/prometheus.yml + + # Grafana files + $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/grafana + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/dashboards-osm.yml $OSM_DOCKER_WORK_DIR/grafana/dashboards-osm.yml + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/datasource-prometheus.yml $OSM_DOCKER_WORK_DIR/grafana/datasource-prometheus.yml + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/osm-sample-dashboard.json $OSM_DOCKER_WORK_DIR/grafana/osm-sample-dashboard.json + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/osm-system-dashboard.json $OSM_DOCKER_WORK_DIR/grafana/osm-system-dashboard.json + + # Prometheus Exporters files + $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/prometheus_exporters + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/prometheus_exporters/node_exporter.service $OSM_DOCKER_WORK_DIR/prometheus_exporters/node_exporter.service +} + +function generate_docker_env_files() { + echo "Doing a backup of existing env files" + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/keystone-db.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/keystone.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/lcm.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/mon.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/nbi.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/pol.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/ro-db.env{,~} + $WORKDIR_SUDO cp $OSM_DOCKER_WORK_DIR/ro.env{,~} + + echo "Generating docker env files" + # LCM + if [ ! -f $OSM_DOCKER_WORK_DIR/lcm.env ]; then + echo "OSMLCM_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_HOST" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_HOST=${OSM_VCA_HOST}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_HOST.*|OSMLCM_VCA_HOST=$OSM_VCA_HOST|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_SECRET" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_SECRET=${OSM_VCA_SECRET}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_SECRET.*|OSMLCM_VCA_SECRET=$OSM_VCA_SECRET|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_PUBKEY" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_PUBKEY=${OSM_VCA_PUBKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_PUBKEY.*|OSMLCM_VCA_PUBKEY=${OSM_VCA_PUBKEY}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_CACERT" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_CACERT=${OSM_VCA_CACERT}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_CACERT.*|OSMLCM_VCA_CACERT=${OSM_VCA_CACERT}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if [ -n "$OSM_VCA_APIPROXY" ]; then + if ! grep -Fq "OSMLCM_VCA_APIPROXY" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_APIPROXY.*|OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + fi + + if ! grep -Fq "OSMLCM_VCA_ENABLEOSUPGRADE" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "# OSMLCM_VCA_ENABLEOSUPGRADE=false" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_APTMIRROR" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "# OSMLCM_VCA_APTMIRROR=http://archive.ubuntu.com/ubuntu/" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_CLOUD" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_CLOUD=${OSM_VCA_CLOUDNAME}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_CLOUD.*|OSMLCM_VCA_CLOUD=${OSM_VCA_CLOUDNAME}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + if ! grep -Fq "OSMLCM_VCA_K8S_CLOUD" $OSM_DOCKER_WORK_DIR/lcm.env; then + echo "OSMLCM_VCA_K8S_CLOUD=${OSM_VCA_K8S_CLOUDNAME}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env + else + $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_K8S_CLOUD.*|OSMLCM_VCA_K8S_CLOUD=${OSM_VCA_K8S_CLOUDNAME}|g" $OSM_DOCKER_WORK_DIR/lcm.env + fi + + # RO + MYSQL_ROOT_PASSWORD=$(generate_secret) + if [ ! -f $OSM_DOCKER_WORK_DIR/ro-db.env ]; then + echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/ro-db.env + fi + if [ ! -f $OSM_DOCKER_WORK_DIR/ro.env ]; then + echo "RO_DB_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/ro.env + fi + if ! grep -Fq "OSMRO_DATABASE_COMMONKEY" $OSM_DOCKER_WORK_DIR/ro.env; then + echo "OSMRO_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/ro.env + fi + + # Keystone + KEYSTONE_DB_PASSWORD=$(generate_secret) + SERVICE_PASSWORD=$(generate_secret) + if [ ! -f $OSM_DOCKER_WORK_DIR/keystone-db.env ]; then + echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/keystone-db.env + fi + if [ ! -f $OSM_DOCKER_WORK_DIR/keystone.env ]; then + echo "ROOT_DB_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/keystone.env + echo "KEYSTONE_DB_PASSWORD=${KEYSTONE_DB_PASSWORD}" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/keystone.env + echo "SERVICE_PASSWORD=${SERVICE_PASSWORD}" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/keystone.env + fi + + # NBI + if [ ! -f $OSM_DOCKER_WORK_DIR/nbi.env ]; then + echo "OSMNBI_AUTHENTICATION_SERVICE_PASSWORD=${SERVICE_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/nbi.env + echo "OSMNBI_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/nbi.env + fi + + # MON + if [ ! -f $OSM_DOCKER_WORK_DIR/mon.env ]; then + echo "OSMMON_KEYSTONE_SERVICE_PASSWORD=${SERVICE_PASSWORD}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + echo "OSMMON_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + echo "OSMMON_SQL_DATABASE_URI=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/mon" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OS_NOTIFIER_URI" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OS_NOTIFIER_URI=http://${DEFAULT_IP}:8662" |$WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OS_NOTIFIER_URI.*|OS_NOTIFIER_URI=http://$DEFAULT_IP:8662|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_HOST" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_HOST=${OSM_VCA_HOST}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_HOST.*|OSMMON_VCA_HOST=$OSM_VCA_HOST|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_SECRET" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_SECRET=${OSM_VCA_SECRET}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_SECRET.*|OSMMON_VCA_SECRET=$OSM_VCA_SECRET|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + if ! grep -Fq "OSMMON_VCA_CACERT" $OSM_DOCKER_WORK_DIR/mon.env; then + echo "OSMMON_VCA_CACERT=${OSM_VCA_CACERT}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env + else + $WORKDIR_SUDO sed -i "s|OSMMON_VCA_CACERT.*|OSMMON_VCA_CACERT=${OSM_VCA_CACERT}|g" $OSM_DOCKER_WORK_DIR/mon.env + fi + + + # POL + if [ ! -f $OSM_DOCKER_WORK_DIR/pol.env ]; then + echo "OSMPOL_SQL_DATABASE_URI=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/pol" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/pol.env + fi + + echo "Finished generation of docker env files" +} + +function generate_osmclient_script () { + echo "docker run -ti --network net${OSM_STACK_NAME} ${DOCKER_REGISTRY_URL}${DOCKER_USER}/osmclient:${OSM_DOCKER_TAG}" | $WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/osm + $WORKDIR_SUDO chmod +x "$OSM_DOCKER_WORK_DIR/osm" + echo "osmclient sidecar container can be found at: $OSM_DOCKER_WORK_DIR/osm" +} + +#installs kubernetes packages +function install_kube() { + sudo apt-get update && sudo apt-get install -y apt-transport-https + curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - + sudo add-apt-repository "deb https://apt.kubernetes.io/ kubernetes-xenial main" + sudo apt-get update + echo "Installing Kubernetes Packages ..." + sudo apt-get install -y kubelet=1.15.0-00 kubeadm=1.15.0-00 kubectl=1.15.0-00 + sudo apt-mark hold kubelet kubeadm kubectl +} + +#initializes kubernetes control plane +function init_kubeadm() { + sudo swapoff -a + sudo sed -i.bak '/.*none.*swap/s/^\(.*\)$/#\1/g' /etc/fstab + sudo kubeadm init --config $1 + sleep 5 +} + +function kube_config_dir() { + [ ! -d $K8S_MANIFEST_DIR ] && FATAL "Cannot Install Kubernetes" + mkdir -p $HOME/.kube + sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config +} + +function install_k8s_storageclass() { + OPENEBS_DIR="$(mktemp -d -q --tmpdir "openebs.XXXXXX")" + trap 'rm -rf "${OPENEBS_DIR}"' EXIT + wget -q https://openebs.github.io/charts/openebs-operator-1.6.0.yaml -P $OPENEBS_DIR + kubectl apply -f $OPENEBS_DIR + local storageclass_timeout=400 + local counter=0 + local storageclass_ready="" + echo "Waiting for storageclass" + while (( counter < storageclass_timeout )) + do + kubectl get storageclass openebs-hostpath &> /dev/null + + if [ $? -eq 0 ] ; then + echo "Storageclass available" + storageclass_ready="y" + break + else + counter=$((counter + 15)) + sleep 15 + fi + done + [ -n "$storageclass_ready" ] || FATAL "Storageclass not ready after $storageclass_timeout seconds. Cannot install openebs" + kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' +} + +function install_k8s_metallb() { + METALLB_IP_RANGE=$DEFAULT_IP-$DEFAULT_IP + cat ${OSM_DEVOPS}/installers/k8s/metallb/metallb.yaml | kubectl apply -f - + echo "apiVersion: v1 +kind: ConfigMap +metadata: + namespace: metallb-system + name: config +data: + config: | + address-pools: + - name: default + protocol: layer2 + addresses: + - $METALLB_IP_RANGE" | kubectl apply -f - +} +#deploys flannel as daemonsets +function deploy_cni_provider() { + CNI_DIR="$(mktemp -d -q --tmpdir "flannel.XXXXXX")" + trap 'rm -rf "${CNI_DIR}"' EXIT + wget -q https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml -P $CNI_DIR + kubectl apply -f $CNI_DIR + [ $? -ne 0 ] && FATAL "Cannot Install Flannel" +} + +#creates secrets from env files which will be used by containers +function kube_secrets(){ + kubectl create ns $OSM_STACK_NAME + kubectl create secret generic lcm-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/lcm.env + kubectl create secret generic mon-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/mon.env + kubectl create secret generic nbi-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/nbi.env + kubectl create secret generic ro-db-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/ro-db.env + kubectl create secret generic ro-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/ro.env + kubectl create secret generic keystone-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/keystone.env + kubectl create secret generic pol-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/pol.env +} + +#taints K8s master node +function taint_master_node() { + K8S_MASTER=$(kubectl get nodes | awk '$3~/master/'| awk '{print $1}') + kubectl taint node $K8S_MASTER node-role.kubernetes.io/master:NoSchedule- + sleep 5 +} + +#deploys osm pods and services +function deploy_osm_services() { + kubectl apply -n $OSM_STACK_NAME -f $OSM_K8S_WORK_DIR +} + +#deploy charmed services +function deploy_charmed_services() { + juju add-model $OSM_STACK_NAME $OSM_VCA_K8S_CLOUDNAME + # deploy mongodb charm + namespace=$OSM_STACK_NAME + juju deploy cs:~charmed-osm/mongodb-k8s \ + --config enable-sidecar=true \ + --config replica-set=rs0 \ + --config namespace=$namespace \ + -m $namespace +} + +function deploy_osm_pla_service() { + # corresponding to namespace_vol + $WORKDIR_SUDO sed -i "s#path: /var/lib/osm#path: $OSM_NAMESPACE_VOL#g" $OSM_DOCKER_WORK_DIR/osm_pla/pla.yaml + # corresponding to deploy_osm_services + kubectl apply -n $OSM_STACK_NAME -f $OSM_DOCKER_WORK_DIR/osm_pla +} + +#Install helm and tiller +function install_helm() { + helm > /dev/null 2>&1 + if [ $? != 0 ] ; then + # Helm is not installed. Install helm + echo "Helm is not installed, installing ..." + curl https://get.helm.sh/helm-v2.15.2-linux-amd64.tar.gz --output helm-v2.15.2.tar.gz + tar -zxvf helm-v2.15.2.tar.gz + sudo mv linux-amd64/helm /usr/local/bin/helm + rm -r linux-amd64 + rm helm-v2.15.2.tar.gz + fi + + # Checking if tiller has being configured + kubectl --namespace kube-system get serviceaccount tiller > /dev/null 2>&1 + if [ $? == 1 ] ; then + # tiller account for kubernetes + kubectl --namespace kube-system create serviceaccount tiller + kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller + # HELM initialization + helm init --stable-repo-url https://charts.helm.sh/stable --service-account tiller + + # Wait for Tiller to be up and running. If timeout expires, continue installing + tiller_timeout=120; + counter=0; + tiller_status="" + while (( counter < tiller_timeout )) + do + tiller_status=`kubectl -n kube-system get deployment.apps/tiller-deploy --no-headers | awk '{print $2'}` + ( [ ! -z "$tiller_status" ] && [ $tiller_status == "1/1" ] ) && echo "Tiller ready" && break + counter=$((counter + 5)) + sleep 5 + done + [ "$tiller_status" != "1/1" ] && echo "Tiller is NOT READY YET. Installation will continue" + fi +} + +function parse_yaml() { + TAG=$1 + shift + services=$@ + for module in $services; do + if [ "$module" == "pla" ]; then + if [ -n "$INSTALL_PLA" ]; then + echo "Updating K8s manifest file from opensourcemano\/${module}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${module}:${TAG}" + $WORKDIR_SUDO sed -i "s#opensourcemano/pla:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/pla:${TAG}#g" ${OSM_DOCKER_WORK_DIR}/osm_pla/pla.yaml + fi + else + echo "Updating K8s manifest file from opensourcemano\/${module}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${module}:${TAG}" + $WORKDIR_SUDO sed -i "s#opensourcemano/${module}:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module}:${TAG}#g" ${OSM_K8S_WORK_DIR}/${module}.yaml + fi + done +} + +function update_manifest_files() { + osm_services="nbi lcm ro pol mon ng-ui keystone pla" + list_of_services="" + for module in $osm_services; do + module_upper="${module^^}" + if ! echo $TO_REBUILD | grep -q $module_upper ; then + list_of_services="$list_of_services $module" + fi + done + if [ ! "$OSM_DOCKER_TAG" == "10" ]; then + parse_yaml $OSM_DOCKER_TAG $list_of_services + fi + if [ -n "$MODULE_DOCKER_TAG" ]; then + parse_yaml $MODULE_DOCKER_TAG $list_of_services_to_rebuild + fi +} + +function namespace_vol() { + osm_services="nbi lcm ro pol mon kafka mysql prometheus" + for osm in $osm_services; do + $WORKDIR_SUDO sed -i "s#path: /var/lib/osm#path: $OSM_NAMESPACE_VOL#g" $OSM_K8S_WORK_DIR/$osm.yaml + done +} + +function init_docker_swarm() { + if [ "${DEFAULT_MTU}" != "1500" ]; then + DOCKER_NETS=`sg docker -c "docker network list" | awk '{print $2}' | egrep -v "^ID$" | paste -d " " -s` + DOCKER_GW_NET=`sg docker -c "docker network inspect ${DOCKER_NETS}" | grep Subnet | awk -F\" '{print $4}' | egrep "^172" | sort -u | tail -1 | awk -F\. '{if ($2 != 255) print $1"."$2+1"."$3"."$4; else print "-1";}'` + sg docker -c "docker network create --subnet ${DOCKER_GW_NET} --opt com.docker.network.bridge.name=docker_gwbridge --opt com.docker.network.bridge.enable_icc=false --opt com.docker.network.bridge.enable_ip_masquerade=true --opt com.docker.network.driver.mtu=${DEFAULT_MTU} docker_gwbridge" + fi + sg docker -c "docker swarm init --advertise-addr ${DEFAULT_IP}" + return 0 +} + +function create_docker_network() { + echo "creating network" + sg docker -c "docker network create --driver=overlay --attachable --opt com.docker.network.driver.mtu=${DEFAULT_MTU} net${OSM_STACK_NAME}" + echo "creating network DONE" +} + +function deploy_lightweight() { + + echo "Deploying lightweight build" + OSM_NBI_PORT=9999 + OSM_RO_PORT=9090 + OSM_KEYSTONE_PORT=5000 + OSM_UI_PORT=80 + OSM_MON_PORT=8662 + OSM_PROM_PORT=9090 + OSM_PROM_CADVISOR_PORT=8080 + OSM_PROM_HOSTPORT=9091 + OSM_GRAFANA_PORT=3000 + [ -n "$INSTALL_ELK" ] && OSM_ELK_PORT=5601 + #[ -n "$INSTALL_PERFMON" ] && OSM_PM_PORT=3000 + + if [ -n "$NO_HOST_PORTS" ]; then + OSM_PORTS+=(OSM_NBI_PORTS=$OSM_NBI_PORT) + OSM_PORTS+=(OSM_RO_PORTS=$OSM_RO_PORT) + OSM_PORTS+=(OSM_KEYSTONE_PORTS=$OSM_KEYSTONE_PORT) + OSM_PORTS+=(OSM_UI_PORTS=$OSM_UI_PORT) + OSM_PORTS+=(OSM_MON_PORTS=$OSM_MON_PORT) + OSM_PORTS+=(OSM_PROM_PORTS=$OSM_PROM_PORT) + OSM_PORTS+=(OSM_PROM_CADVISOR_PORTS=$OSM_PROM_CADVISOR_PORT) + OSM_PORTS+=(OSM_GRAFANA_PORTS=$OSM_GRAFANA_PORT) + #[ -n "$INSTALL_PERFMON" ] && OSM_PORTS+=(OSM_PM_PORTS=$OSM_PM_PORT) + [ -n "$INSTALL_ELK" ] && OSM_PORTS+=(OSM_ELK_PORTS=$OSM_ELK_PORT) + else + OSM_PORTS+=(OSM_NBI_PORTS=$OSM_NBI_PORT:$OSM_NBI_PORT) + OSM_PORTS+=(OSM_RO_PORTS=$OSM_RO_PORT:$OSM_RO_PORT) + OSM_PORTS+=(OSM_KEYSTONE_PORTS=$OSM_KEYSTONE_PORT:$OSM_KEYSTONE_PORT) + OSM_PORTS+=(OSM_UI_PORTS=$OSM_UI_PORT:$OSM_UI_PORT) + OSM_PORTS+=(OSM_MON_PORTS=$OSM_MON_PORT:$OSM_MON_PORT) + OSM_PORTS+=(OSM_PROM_PORTS=$OSM_PROM_HOSTPORT:$OSM_PROM_PORT) + OSM_PORTS+=(OSM_PROM_CADVISOR_PORTS=$OSM_PROM_CADVISOR_PORT:$OSM_PROM_CADVISOR_PORT) + OSM_PORTS+=(OSM_GRAFANA_PORTS=$OSM_GRAFANA_PORT:$OSM_GRAFANA_PORT) + #[ -n "$INSTALL_PERFMON" ] && OSM_PORTS+=(OSM_PM_PORTS=$OSM_PM_PORT:$OSM_PM_PORT) + [ -n "$INSTALL_ELK" ] && OSM_PORTS+=(OSM_ELK_PORTS=$OSM_ELK_PORT:$OSM_ELK_PORT) + fi + echo "export ${OSM_PORTS[@]}" | $WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export OSM_NETWORK=net${OSM_STACK_NAME}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export TAG=${OSM_DOCKER_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export DOCKER_USER=${DOCKER_USER}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export KAFKA_TAG=${KAFKA_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export PROMETHEUS_TAG=${PROMETHEUS_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export KEYSTONEDB_TAG=${KEYSTONEDB_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export PROMETHEUS_CADVISOR_TAG=${PROMETHEUS_CADVISOR_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + echo "export GRAFANA_TAG=${GRAFANA_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh + + pushd $OSM_DOCKER_WORK_DIR + if [ -n "$INSTALL_PLA" ]; then + track deploy_osm_pla + sg docker -c ". ./osm_ports.sh; docker stack deploy -c $OSM_DOCKER_WORK_DIR/docker-compose.yaml -c $OSM_DOCKER_WORK_DIR/docker-compose-ui.yaml -c $OSM_DOCKER_WORK_DIR/osm_pla/docker-compose.yaml $OSM_STACK_NAME" + else + sg docker -c ". ./osm_ports.sh; docker stack deploy -c $OSM_DOCKER_WORK_DIR/docker-compose.yaml -c $OSM_DOCKER_WORK_DIR/docker-compose-ui.yaml $OSM_STACK_NAME" + fi + popd + + echo "Finished deployment of lightweight build" +} + +function deploy_elk() { + echo "Pulling docker images for ELK" + sg docker -c "docker pull docker.elastic.co/elasticsearch/elasticsearch-oss:${ELASTIC_VERSION}" || FATAL "cannot get elasticsearch docker image" + sg docker -c "docker pull docker.elastic.co/beats/metricbeat:${ELASTIC_VERSION}" || FATAL "cannot get metricbeat docker image" + sg docker -c "docker pull docker.elastic.co/beats/filebeat:${ELASTIC_VERSION}" || FATAL "cannot get filebeat docker image" + sg docker -c "docker pull docker.elastic.co/kibana/kibana-oss:${ELASTIC_VERSION}" || FATAL "cannot get kibana docker image" + sg docker -c "docker pull bobrik/curator:${ELASTIC_CURATOR_VERSION}" || FATAL "cannot get curator docker image" + echo "Finished pulling elk docker images" + $WORKDIR_SUDO mkdir -p "$OSM_DOCKER_WORK_DIR/osm_elk" + $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/osm_elk/* $OSM_DOCKER_WORK_DIR/osm_elk + remove_stack osm_elk + echo "Deploying ELK stack" + sg docker -c "OSM_NETWORK=net${OSM_STACK_NAME} docker stack deploy -c $OSM_DOCKER_WORK_DIR/osm_elk/docker-compose.yml osm_elk" + echo "Waiting for ELK stack to be up and running" + time=0 + step=5 + timelength=40 + elk_is_up=1 + while [ $time -le $timelength ]; do + if [[ $(curl -f -XGET http://127.0.0.1:5601/status -I 2>/dev/null | grep "HTTP/1.1 200 OK" | wc -l ) -eq 1 ]]; then + elk_is_up=0 + break + fi + sleep $step + time=$((time+step)) + done + if [ $elk_is_up -eq 0 ]; then + echo "ELK is up and running. Trying to create index pattern..." + #Create index pattern + curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/saved_objects/index-pattern/filebeat-*" \ + -d"{\"attributes\":{\"title\":\"filebeat-*\",\"timeFieldName\":\"@timestamp\"}}" 2>/dev/null + #Make it the default index + curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/kibana/settings/defaultIndex" \ + -d"{\"value\":\"filebeat-*\"}" 2>/dev/null + else + echo "Cannot connect to Kibana to create index pattern." + echo "Once Kibana is running, you can use the following instructions to create index pattern:" + echo 'curl -f -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/saved_objects/index-pattern/filebeat-*" \ + -d"{\"attributes\":{\"title\":\"filebeat-*\",\"timeFieldName\":\"@timestamp\"}}"' + echo 'curl -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "http://127.0.0.1:5601/api/kibana/settings/defaultIndex" \ + -d"{\"value\":\"filebeat-*\"}"' + fi + echo "Finished deployment of ELK stack" + return 0 +} + +function add_local_k8scluster() { + /usr/bin/osm --all-projects vim-create \ + --name _system-osm-vim \ + --account_type dummy \ + --auth_url http://dummy \ + --user osm --password osm --tenant osm \ + --description "dummy" \ + --config '{management_network_name: mgmt}' + /usr/bin/osm --all-projects k8scluster-add \ + --creds ${HOME}/.kube/config \ + --vim _system-osm-vim \ + --k8s-nets '{"net1": null}' \ + --version '1.15' \ + --description "OSM Internal Cluster" \ + _system-osm-k8s +} + +function install_lightweight() { + track checkingroot + [ "$USER" == "root" ] && FATAL "You are running the installer as root. The installer is prepared to be executed as a normal user with sudo privileges." + track noroot + + if [ -n "$KUBERNETES" ]; then + [ -z "$ASSUME_YES" ] && ! ask_user "The installation will do the following + 1. Install and configure LXD + 2. Install juju + 3. Install docker CE + 4. Disable swap space + 5. Install and initialize Kubernetes + as pre-requirements. + Do you want to proceed (Y/n)? " y && echo "Cancelled!" && exit 1 + + else + [ -z "$ASSUME_YES" ] && ! ask_user "The installation will configure LXD, install juju, install docker CE and init a docker swarm, as pre-requirements. Do you want to proceed (Y/n)? " y && echo "Cancelled!" && exit 1 + fi + track proceed + + echo "Installing lightweight build of OSM" + LWTEMPDIR="$(mktemp -d -q --tmpdir "installosmlight.XXXXXX")" + trap 'rm -rf "${LWTEMPDIR}"' EXIT + DEFAULT_IF=$(ip route list|awk '$1=="default" {print $5; exit}') + [ -z "$DEFAULT_IF" ] && DEFAULT_IF=$(route -n |awk '$1~/^0.0.0.0/ {print $8; exit}') + [ -z "$DEFAULT_IF" ] && FATAL "Not possible to determine the interface with the default route 0.0.0.0" + DEFAULT_IP=`ip -o -4 a s ${DEFAULT_IF} |awk '{split($4,a,"/"); print a[1]}'` + [ -z "$DEFAULT_IP" ] && FATAL "Not possible to determine the IP address of the interface with the default route" + DEFAULT_MTU=$(ip addr show ${DEFAULT_IF} | perl -ne 'if (/mtu\s(\d+)/) {print $1;}') + + # if no host is passed in, we need to install lxd/juju, unless explicilty asked not to + if [ -z "$OSM_VCA_HOST" ] && [ -z "$INSTALL_NOLXD" ] && [ -z "$LXD_CLOUD_FILE" ]; then + need_packages_lw="snapd" + echo -e "Checking required packages: $need_packages_lw" + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "One or several required packages are not installed. Updating apt cache requires root privileges." \ + || sudo apt-get update \ + || FATAL "failed to run apt-get update" + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "Installing $need_packages_lw requires root privileges." \ + || sudo apt-get install -y $need_packages_lw \ + || FATAL "failed to install $need_packages_lw" + install_lxd + fi + + track prereqok + + [ -n "$INSTALL_NODOCKER" ] || (install_docker_ce && track docker_ce) + + echo "Creating folders for installation" + [ ! -d "$OSM_DOCKER_WORK_DIR" ] && $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR + [ ! -d "$OSM_DOCKER_WORK_DIR/osm_pla" -a -n "$INSTALL_PLA" ] && $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/osm_pla + [ -n "$KUBERNETES" ] && $WORKDIR_SUDO cp -b $OSM_DEVOPS/installers/docker/cluster-config.yaml $OSM_DOCKER_WORK_DIR/cluster-config.yaml + + #Installs Kubernetes + if [ -n "$KUBERNETES" ]; then + install_kube + track install_k8s + init_kubeadm $OSM_DOCKER_WORK_DIR/cluster-config.yaml + kube_config_dir + track init_k8s + if [ -n "$INSTALL_K8S_MONITOR" ]; then + # uninstall OSM MONITORING + uninstall_k8s_monitoring + track uninstall_k8s_monitoring + fi + #remove old namespace + remove_k8s_namespace $OSM_STACK_NAME + deploy_cni_provider + taint_master_node + install_k8s_storageclass + track k8s_storageclass + install_k8s_metallb + track k8s_metallb + else + #install_docker_compose + [ -n "$INSTALL_NODOCKER" ] || init_docker_swarm + track docker_swarm + fi + + [ -z "$INSTALL_NOJUJU" ] && install_juju + track juju_install + + if [ -z "$OSM_VCA_HOST" ]; then + if [ -z "$CONTROLLER_NAME" ]; then + + if [ -n "$KUBERNETES" ]; then + juju_createcontroller_k8s + juju_addlxd_cloud + else + if [ -n "$LXD_CLOUD_FILE" ]; then + [ -z "$LXD_CRED_FILE" ] && FATAL "The installer needs the LXD credential yaml if the LXD is external" + OSM_VCA_CLOUDNAME="lxd-cloud" + juju add-cloud $OSM_VCA_CLOUDNAME $LXD_CLOUD_FILE --force || juju update-cloud $OSM_VCA_CLOUDNAME --client -f $LXD_CLOUD_FILE + juju add-credential $OSM_VCA_CLOUDNAME -f $LXD_CRED_FILE || juju update-credential $OSM_VCA_CLOUDNAME lxd-cloud-creds -f $LXD_CRED_FILE + fi + juju_createcontroller + juju_createproxy + fi + else + OSM_VCA_CLOUDNAME="lxd-cloud" + if [ -n "$LXD_CLOUD_FILE" ]; then + [ -z "$LXD_CRED_FILE" ] && FATAL "The installer needs the LXD credential yaml if the LXD is external" + juju add-cloud -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME $LXD_CLOUD_FILE --force || juju update-cloud lxd-cloud -c $CONTROLLER_NAME -f $LXD_CLOUD_FILE + juju add-credential -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME -f $LXD_CRED_FILE || juju update-credential lxd-cloud -c $CONTROLLER_NAME -f $LXD_CRED_FILE + else + mkdir -p ~/.osm + cat << EOF > ~/.osm/lxd-cloud.yaml +clouds: + lxd-cloud: + type: lxd + auth-types: [certificate] + endpoint: "https://$DEFAULT_IP:8443" + config: + ssl-hostname-verification: false +EOF + openssl req -nodes -new -x509 -keyout ~/.osm/client.key -out ~/.osm/client.crt -days 365 -subj "/C=FR/ST=Nice/L=Nice/O=ETSI/OU=OSM/CN=osm.etsi.org" + local server_cert=`cat /var/snap/lxd/common/lxd/server.crt | sed 's/^/ /'` + local client_cert=`cat ~/.osm/client.crt | sed 's/^/ /'` + local client_key=`cat ~/.osm/client.key | sed 's/^/ /'` + cat << EOF > ~/.osm/lxd-credentials.yaml +credentials: + lxd-cloud: + lxd-cloud: + auth-type: certificate + server-cert: | +$server_cert + client-cert: | +$client_cert + client-key: | +$client_key +EOF + lxc config trust add local: ~/.osm/client.crt + juju add-cloud -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME ~/.osm/lxd-cloud.yaml --force || juju update-cloud lxd-cloud -c $CONTROLLER_NAME -f ~/.osm/lxd-cloud.yaml + juju add-credential -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME -f ~/.osm/lxd-credentials.yaml || juju update-credential lxd-cloud -c $CONTROLLER_NAME -f ~/.osm/lxd-credentials.yaml + fi + fi + [ -z "$CONTROLLER_NAME" ] && OSM_VCA_HOST=`sg lxd -c "juju show-controller $OSM_STACK_NAME"|grep api-endpoints|awk -F\' '{print $2}'|awk -F\: '{print $1}'` + [ -n "$CONTROLLER_NAME" ] && OSM_VCA_HOST=`juju show-controller $CONTROLLER_NAME |grep api-endpoints|awk -F\' '{print $2}'|awk -F\: '{print $1}'` + [ -z "$OSM_VCA_HOST" ] && FATAL "Cannot obtain juju controller IP address" + fi + track juju_controller + + if [ -z "$OSM_VCA_SECRET" ]; then + [ -z "$CONTROLLER_NAME" ] && OSM_VCA_SECRET=$(parse_juju_password $OSM_STACK_NAME) + [ -n "$CONTROLLER_NAME" ] && OSM_VCA_SECRET=$(parse_juju_password $CONTROLLER_NAME) + [ -z "$OSM_VCA_SECRET" ] && FATAL "Cannot obtain juju secret" + fi + if [ -z "$OSM_VCA_PUBKEY" ]; then + OSM_VCA_PUBKEY=$(cat $HOME/.local/share/juju/ssh/juju_id_rsa.pub) + [ -z "$OSM_VCA_PUBKEY" ] && FATAL "Cannot obtain juju public key" + fi + if [ -z "$OSM_VCA_CACERT" ]; then + [ -z "$CONTROLLER_NAME" ] && OSM_VCA_CACERT=$(juju controllers --format json | jq -r --arg controller $OSM_STACK_NAME '.controllers[$controller]["ca-cert"]' | base64 | tr -d \\n) + [ -n "$CONTROLLER_NAME" ] && OSM_VCA_CACERT=$(juju controllers --format json | jq -r --arg controller $CONTROLLER_NAME '.controllers[$controller]["ca-cert"]' | base64 | tr -d \\n) + [ -z "$OSM_VCA_CACERT" ] && FATAL "Cannot obtain juju CA certificate" + fi + + # Set OSM_VCA_APIPROXY only when it is not a k8s installation + if [ -z "$KUBERNETES" ]; then + if [ -z "$OSM_VCA_APIPROXY" ]; then + OSM_VCA_APIPROXY=$DEFAULT_IP + [ -z "$OSM_VCA_APIPROXY" ] && FATAL "Cannot obtain juju api proxy" + fi + juju_createproxy + fi + track juju + + if [ -z "$OSM_DATABASE_COMMONKEY" ]; then + OSM_DATABASE_COMMONKEY=$(generate_secret) + [ -z "OSM_DATABASE_COMMONKEY" ] && FATAL "Cannot generate common db secret" + fi + + # Deploy OSM services + [ -z "$DOCKER_NOBUILD" ] && generate_docker_images + track docker_build + + if [ -n "$KUBERNETES" ]; then + generate_k8s_manifest_files + else + generate_docker_compose_files + fi + track manifest_files + generate_prometheus_grafana_files + generate_docker_env_files + track env_files + + if [ -n "$KUBERNETES" ]; then + deploy_charmed_services + kube_secrets + update_manifest_files + namespace_vol + deploy_osm_services + if [ -n "$INSTALL_PLA"]; then + # optional PLA install + deploy_osm_pla_service + track deploy_osm_pla + fi + track deploy_osm_services_k8s + install_helm + track install_helm + if [ -n "$INSTALL_K8S_MONITOR" ]; then + # install OSM MONITORING + install_k8s_monitoring + track install_k8s_monitoring + fi + else + # remove old stack + remove_stack $OSM_STACK_NAME + create_docker_network + deploy_lightweight + generate_osmclient_script + track docker_deploy + install_prometheus_nodeexporter + track nodeexporter + [ -n "$INSTALL_VIMEMU" ] && install_vimemu && track vimemu + [ -n "$INSTALL_ELK" ] && deploy_elk && track elk + fi + + [ -z "$INSTALL_NOHOSTCLIENT" ] && install_osmclient + track osmclient + + echo -e "Checking OSM health state..." + if [ -n "$KUBERNETES" ]; then + $OSM_DEVOPS/installers/osm_health.sh -s ${OSM_STACK_NAME} -k || \ + echo -e "OSM is not healthy, but will probably converge to a healthy state soon." && \ + echo -e "Check OSM status with: kubectl -n ${OSM_STACK_NAME} get all" && \ + track osm_unhealthy + else + $OSM_DEVOPS/installers/osm_health.sh -s ${OSM_STACK_NAME} || \ + echo -e "OSM is not healthy, but will probably converge to a healthy state soon." && \ + echo -e "Check OSM status with: docker service ls; docker stack ps ${OSM_STACK_NAME}" && \ + track osm_unhealthy + fi + track after_healthcheck + + [ -n "$KUBERNETES" ] && add_local_k8scluster + track add_local_k8scluster + + wget -q -O- https://osm-download.etsi.org/ftp/osm-10.0-ten/README2.txt &> /dev/null + track end + return 0 +} + +function install_to_openstack() { + + if [ -z "$2" ]; then + FATAL "OpenStack installer requires a valid external network name" + fi + + # Install Pip for Python3 + $WORKDIR_SUDO apt install -y python3-pip python3-venv + $WORKDIR_SUDO -H LC_ALL=C python3 -m pip install -U pip + + # Create a venv to avoid conflicts with the host installation + python3 -m venv $OPENSTACK_PYTHON_VENV + + source $OPENSTACK_PYTHON_VENV/bin/activate + + # Install Ansible, OpenStack client and SDK, latest openstack version supported is Train + python -m pip install -U wheel + python -m pip install -U "python-openstackclient<=4.0.2" "openstacksdk>=0.12.0,<=0.36.2" "ansible>=2.10,<2.11" + + # Install the Openstack cloud module (ansible>=2.10) + ansible-galaxy collection install openstack.cloud + + export ANSIBLE_CONFIG="$OSM_DEVOPS/installers/openstack/ansible.cfg" + + OSM_INSTALLER_ARGS="${REPO_ARGS[@]}" + + ANSIBLE_VARS="external_network_name=$2 setup_volume=$3 server_name=$OPENSTACK_VM_NAME" + + if [ -n "$OPENSTACK_SSH_KEY_FILE" ]; then + ANSIBLE_VARS+=" key_file=$OPENSTACK_SSH_KEY_FILE" + fi + + if [ -n "$OPENSTACK_USERDATA_FILE" ]; then + ANSIBLE_VARS+=" userdata_file=$OPENSTACK_USERDATA_FILE" + fi + + # Execute the Ansible playbook based on openrc or clouds.yaml + if [ -e "$1" ]; then + . $1 + ansible-playbook -e installer_args="\"$OSM_INSTALLER_ARGS\"" -e "$ANSIBLE_VARS" \ + $OSM_DEVOPS/installers/openstack/site.yml + else + ansible-playbook -e installer_args="\"$OSM_INSTALLER_ARGS\"" -e "$ANSIBLE_VARS" \ + -e cloud_name=$1 $OSM_DEVOPS/installers/openstack/site.yml + fi + + # Exit from venv + deactivate + + return 0 +} + +function install_vimemu() { + echo "\nInstalling vim-emu" + EMUTEMPDIR="$(mktemp -d -q --tmpdir "installosmvimemu.XXXXXX")" + trap 'rm -rf "${EMUTEMPDIR}"' EXIT + # install prerequisites (OVS is a must for the emulator to work) + sudo apt-get install openvswitch-switch + # clone vim-emu repository (attention: branch is currently master only) + echo "Cloning vim-emu repository ..." + git clone https://osm.etsi.org/gerrit/osm/vim-emu.git $EMUTEMPDIR + # build vim-emu docker + echo "Building vim-emu Docker container..." + + sg docker -c "docker build -t vim-emu-img -f $EMUTEMPDIR/Dockerfile --no-cache $EMUTEMPDIR/" || FATAL "cannot build vim-emu-img docker image" + # start vim-emu container as daemon + echo "Starting vim-emu Docker container 'vim-emu' ..." + if [ -n "$INSTALL_LIGHTWEIGHT" ]; then + # in lightweight mode, the emulator needs to be attached to netOSM + sg docker -c "docker run --name vim-emu -t -d --restart always --privileged --pid='host' --network=net${OSM_STACK_NAME} -v /var/run/docker.sock:/var/run/docker.sock vim-emu-img python examples/osm_default_daemon_topology_2_pop.py" + else + # classic build mode + sg docker -c "docker run --name vim-emu -t -d --restart always --privileged --pid='host' -v /var/run/docker.sock:/var/run/docker.sock vim-emu-img python examples/osm_default_daemon_topology_2_pop.py" + fi + echo "Waiting for 'vim-emu' container to start ..." + sleep 5 + export VIMEMU_HOSTNAME=$(sg docker -c "docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' vim-emu") + echo "vim-emu running at ${VIMEMU_HOSTNAME} ..." + # print vim-emu connection info + echo -e "\nYou might be interested in adding the following vim-emu env variables to your .bashrc file:" + echo " export VIMEMU_HOSTNAME=${VIMEMU_HOSTNAME}" + echo -e "To add the emulated VIM to OSM you should do:" + echo " osm vim-create --name emu-vim1 --user username --password password --auth_url http://${VIMEMU_HOSTNAME}:6001/v2.0 --tenant tenantName --account_type openstack" +} + +function install_k8s_monitoring() { + # install OSM monitoring + $WORKDIR_SUDO chmod +x $OSM_DEVOPS/installers/k8s/*.sh + $WORKDIR_SUDO $OSM_DEVOPS/installers/k8s/install_osm_k8s_monitoring.sh +} + +function uninstall_k8s_monitoring() { + # uninstall OSM monitoring + $WORKDIR_SUDO $OSM_DEVOPS/installers/k8s/uninstall_osm_k8s_monitoring.sh +} + +function dump_vars(){ + echo "DEVELOP=$DEVELOP" + echo "INSTALL_FROM_SOURCE=$INSTALL_FROM_SOURCE" + echo "UNINSTALL=$UNINSTALL" + echo "UPDATE=$UPDATE" + echo "RECONFIGURE=$RECONFIGURE" + echo "TEST_INSTALLER=$TEST_INSTALLER" + echo "INSTALL_VIMEMU=$INSTALL_VIMEMU" + echo "INSTALL_PLA=$INSTALL_PLA" + echo "INSTALL_LXD=$INSTALL_LXD" + echo "INSTALL_LIGHTWEIGHT=$INSTALL_LIGHTWEIGHT" + echo "INSTALL_ONLY=$INSTALL_ONLY" + echo "INSTALL_ELK=$INSTALL_ELK" + echo "INSTALL_NOCACHELXDIMAGES=$INSTALL_NOCACHELXDIMAGES" + #echo "INSTALL_PERFMON=$INSTALL_PERFMON" + echo "INSTALL_TO_OPENSTACK=$INSTALL_TO_OPENSTACK" + echo "OPENSTACK_PUBLIC_NET_NAME=$OPENSTACK_PUBLIC_NET_NAME" + echo "OPENSTACK_OPENRC_FILE_OR_CLOUD=$OPENSTACK_OPENRC_FILE_OR_CLOUD" + echo "OPENSTACK_ATTACH_VOLUME=$OPENSTACK_ATTACH_VOLUME" + echo "OPENSTACK_SSH_KEY_FILE"="$OPENSTACK_SSH_KEY_FILE" + echo "OPENSTACK_USERDATA_FILE"="$OPENSTACK_USERDATA_FILE" + echo "OPENSTACK_VM_NAME"="$OPENSTACK_VM_NAME" + echo "INSTALL_K8S_MONITOR=$INSTALL_K8S_MONITOR" + echo "TO_REBUILD=$TO_REBUILD" + echo "INSTALL_NOLXD=$INSTALL_NOLXD" + echo "INSTALL_NODOCKER=$INSTALL_NODOCKER" + echo "INSTALL_NOJUJU=$INSTALL_NOJUJU" + echo "RELEASE=$RELEASE" + echo "REPOSITORY=$REPOSITORY" + echo "REPOSITORY_BASE=$REPOSITORY_BASE" + echo "REPOSITORY_KEY=$REPOSITORY_KEY" + echo "OSM_DEVOPS=$OSM_DEVOPS" + echo "OSM_VCA_HOST=$OSM_VCA_HOST" + echo "OSM_VCA_SECRET=$OSM_VCA_SECRET" + echo "OSM_VCA_PUBKEY=$OSM_VCA_PUBKEY" + echo "NO_HOST_PORTS=$NO_HOST_PORTS" + echo "DOCKER_NOBUILD=$DOCKER_NOBUILD" + echo "WORKDIR_SUDO=$WORKDIR_SUDO" + echo "OSM_WORK_DIR=$OSM_WORK_DIR" + echo "OSM_DOCKER_TAG=$OSM_DOCKER_TAG" + echo "DOCKER_USER=$DOCKER_USER" + echo "OSM_STACK_NAME=$OSM_STACK_NAME" + echo "PULL_IMAGES=$PULL_IMAGES" + echo "KUBERNETES=$KUBERNETES" + echo "DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL" + echo "DOCKER_PROXY_URL=$DOCKER_PROXY_URL" + echo "SHOWOPTS=$SHOWOPTS" + echo "Install from specific refspec (-b): $COMMIT_ID" +} + +function track(){ + ctime=`date +%s` + duration=$((ctime - SESSION_ID)) + url="http://www.woopra.com/track/ce?project=osm.etsi.org&cookie=${SESSION_ID}" + #url="${url}&ce_campaign_name=${CAMPAIGN_NAME}" + event_name="bin" + [ -z "$INSTALL_LIGHTWEIGHT" ] && [ -n "$INSTALL_FROM_SOURCE" ] && event_name="binsrc" + [ -z "$INSTALL_LIGHTWEIGHT" ] && [ -n "$INSTALL_FROM_LXDIMAGES" ] && event_name="lxd" + [ -n "$INSTALL_LIGHTWEIGHT" ] && event_name="lw" + event_name="${event_name}_$1" + url="${url}&event=${event_name}&ce_duration=${duration}" + wget -q -O /dev/null $url +} + +function parse_docker_registry_url() { + DOCKER_REGISTRY_USER=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); split(a[1],b,":"); print b[1]}') + DOCKER_REGISTRY_PASSWORD=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); split(a[1],b,":"); print b[2]}') + DOCKER_REGISTRY_URL=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); print a[2]}') +} + +JUJU_AGENT_VERSION=2.8.6 +UNINSTALL="" +DEVELOP="" +UPDATE="" +RECONFIGURE="" +TEST_INSTALLER="" +INSTALL_LXD="" +SHOWOPTS="" +COMMIT_ID="" +ASSUME_YES="" +INSTALL_FROM_SOURCE="" +RELEASE="ReleaseTEN" +REPOSITORY="stable" +INSTALL_VIMEMU="" +INSTALL_PLA="" +LXD_REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/lxd" +LXD_REPOSITORY_PATH="" +INSTALL_LIGHTWEIGHT="y" +INSTALL_TO_OPENSTACK="" +OPENSTACK_OPENRC_FILE_OR_CLOUD="" +OPENSTACK_PUBLIC_NET_NAME="" +OPENSTACK_ATTACH_VOLUME="false" +OPENSTACK_SSH_KEY_FILE="" +OPENSTACK_USERDATA_FILE="" +OPENSTACK_VM_NAME="server-osm" +OPENSTACK_PYTHON_VENV="$HOME/.virtual-envs/osm" +INSTALL_ONLY="" +INSTALL_ELK="" +TO_REBUILD="" +INSTALL_NOLXD="" +INSTALL_NODOCKER="" +INSTALL_NOJUJU="" +KUBERNETES="y" +INSTALL_K8S_MONITOR="" +INSTALL_NOHOSTCLIENT="" +INSTALL_NOCACHELXDIMAGES="" +SESSION_ID=`date +%s` +OSM_DEVOPS= +OSM_VCA_HOST= +OSM_VCA_SECRET= +OSM_VCA_PUBKEY= +OSM_VCA_CLOUDNAME="localhost" +OSM_VCA_K8S_CLOUDNAME="k8scloud" +OSM_STACK_NAME=osm +NO_HOST_PORTS="" +DOCKER_NOBUILD="" +REPOSITORY_KEY="OSM%20ETSI%20Release%20Key.gpg" +REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/debian" +WORKDIR_SUDO=sudo +OSM_WORK_DIR="/etc/osm" +OSM_DOCKER_WORK_DIR="/etc/osm/docker" +OSM_K8S_WORK_DIR="${OSM_DOCKER_WORK_DIR}/osm_pods" +OSM_HOST_VOL="/var/lib/osm" +OSM_NAMESPACE_VOL="${OSM_HOST_VOL}/${OSM_STACK_NAME}" +OSM_DOCKER_TAG=latest +DOCKER_USER=opensourcemano +PULL_IMAGES="y" +KAFKA_TAG=2.11-1.0.2 +PROMETHEUS_TAG=v2.4.3 +GRAFANA_TAG=latest +PROMETHEUS_NODE_EXPORTER_TAG=0.18.1 +PROMETHEUS_CADVISOR_TAG=latest +KEYSTONEDB_TAG=10 +OSM_DATABASE_COMMONKEY= +ELASTIC_VERSION=6.4.2 +ELASTIC_CURATOR_VERSION=5.5.4 +POD_NETWORK_CIDR=10.244.0.0/16 +K8S_MANIFEST_DIR="/etc/kubernetes/manifests" +RE_CHECK='^[a-z0-9]([-a-z0-9]*[a-z0-9])?$' +DOCKER_REGISTRY_URL= +DOCKER_PROXY_URL= +MODULE_DOCKER_TAG= + +while getopts ":b:r:c:n:k:u:R:D:o:O:m:N:H:S:s:w:t:U:P:A:l:L:K:d:p:T:f:F:-: hy" o; do + case "${o}" in + b) + COMMIT_ID=${OPTARG} + PULL_IMAGES="" + ;; + r) + REPOSITORY="${OPTARG}" + REPO_ARGS+=(-r "$REPOSITORY") + ;; + c) + [ "${OPTARG}" == "swarm" ] && KUBERNETES="" && REPO_ARGS+=(-c "${OPTARG}") && continue + [ "${OPTARG}" == "k8s" ] && KUBERNETES="y" && continue + echo -e "Invalid argument for -i : ' $OPTARG'\n" >&2 + usage && exit 1 + ;; + k) + REPOSITORY_KEY="${OPTARG}" + REPO_ARGS+=(-k "$REPOSITORY_KEY") + ;; + u) + REPOSITORY_BASE="${OPTARG}" + REPO_ARGS+=(-u "$REPOSITORY_BASE") + ;; + R) + RELEASE="${OPTARG}" + REPO_ARGS+=(-R "$RELEASE") + ;; + D) + OSM_DEVOPS="${OPTARG}" + ;; + o) + INSTALL_ONLY="y" + [ "${OPTARG}" == "vimemu" ] && INSTALL_VIMEMU="y" && continue + [ "${OPTARG}" == "elk_stack" ] && INSTALL_ELK="y" && continue + [ "${OPTARG}" == "k8s_monitor" ] && INSTALL_K8S_MONITOR="y" && continue + ;; + O) + INSTALL_TO_OPENSTACK="y" + if [ -n "${OPTARG}" ]; then + OPENSTACK_OPENRC_FILE_OR_CLOUD="${OPTARG}" + else + echo -e "Invalid argument for -O : ' $OPTARG'\n" >&2 + usage && exit 1 + fi + ;; + f) + OPENSTACK_SSH_KEY_FILE="${OPTARG}" + ;; + F) + OPENSTACK_USERDATA_FILE="${OPTARG}" + ;; + N) + OPENSTACK_PUBLIC_NET_NAME="${OPTARG}" + ;; + m) + [ "${OPTARG}" == "NG-UI" ] && TO_REBUILD="$TO_REBUILD NG-UI" && continue + [ "${OPTARG}" == "NBI" ] && TO_REBUILD="$TO_REBUILD NBI" && continue + [ "${OPTARG}" == "LCM" ] && TO_REBUILD="$TO_REBUILD LCM" && continue + [ "${OPTARG}" == "RO" ] && TO_REBUILD="$TO_REBUILD RO" && continue + [ "${OPTARG}" == "MON" ] && TO_REBUILD="$TO_REBUILD MON" && continue + [ "${OPTARG}" == "POL" ] && TO_REBUILD="$TO_REBUILD POL" && continue + [ "${OPTARG}" == "PLA" ] && TO_REBUILD="$TO_REBUILD PLA" && continue + [ "${OPTARG}" == "osmclient" ] && TO_REBUILD="$TO_REBUILD osmclient" && continue + [ "${OPTARG}" == "KAFKA" ] && TO_REBUILD="$TO_REBUILD KAFKA" && continue + [ "${OPTARG}" == "MONGO" ] && TO_REBUILD="$TO_REBUILD MONGO" && continue + [ "${OPTARG}" == "PROMETHEUS" ] && TO_REBUILD="$TO_REBUILD PROMETHEUS" && continue + [ "${OPTARG}" == "PROMETHEUS-CADVISOR" ] && TO_REBUILD="$TO_REBUILD PROMETHEUS-CADVISOR" && continue + [ "${OPTARG}" == "KEYSTONE-DB" ] && TO_REBUILD="$TO_REBUILD KEYSTONE-DB" && continue + [ "${OPTARG}" == "GRAFANA" ] && TO_REBUILD="$TO_REBUILD GRAFANA" && continue + [ "${OPTARG}" == "NONE" ] && TO_REBUILD="$TO_REBUILD NONE" && continue + ;; + H) + OSM_VCA_HOST="${OPTARG}" + ;; + S) + OSM_VCA_SECRET="${OPTARG}" + ;; + s) + OSM_STACK_NAME="${OPTARG}" && [ -n "$KUBERNETES" ] && [[ ! "${OPTARG}" =~ $RE_CHECK ]] && echo "Namespace $OPTARG is invalid. Regex used for validation is $RE_CHECK" && exit 0 + ;; + w) + # when specifying workdir, do not use sudo for access + WORKDIR_SUDO= + OSM_WORK_DIR="${OPTARG}" + ;; + t) + OSM_DOCKER_TAG="${OPTARG}" + REPO_ARGS+=(-t "$OSM_DOCKER_TAG") + ;; + U) + DOCKER_USER="${OPTARG}" + ;; + P) + OSM_VCA_PUBKEY=$(cat ${OPTARG}) + ;; + A) + OSM_VCA_APIPROXY="${OPTARG}" + ;; + l) + LXD_CLOUD_FILE="${OPTARG}" + ;; + L) + LXD_CRED_FILE="${OPTARG}" + ;; + K) + CONTROLLER_NAME="${OPTARG}" + ;; + d) + DOCKER_REGISTRY_URL="${OPTARG}" + ;; + p) + DOCKER_PROXY_URL="${OPTARG}" + ;; + T) + MODULE_DOCKER_TAG="${OPTARG}" + ;; + -) + [ "${OPTARG}" == "help" ] && usage && exit 0 + [ "${OPTARG}" == "source" ] && INSTALL_FROM_SOURCE="y" && PULL_IMAGES="" && continue + [ "${OPTARG}" == "develop" ] && DEVELOP="y" && continue + [ "${OPTARG}" == "uninstall" ] && UNINSTALL="y" && continue + [ "${OPTARG}" == "update" ] && UPDATE="y" && continue + [ "${OPTARG}" == "reconfigure" ] && RECONFIGURE="y" && continue + [ "${OPTARG}" == "test" ] && TEST_INSTALLER="y" && continue + [ "${OPTARG}" == "lxdinstall" ] && INSTALL_LXD="y" && continue + [ "${OPTARG}" == "nolxd" ] && INSTALL_NOLXD="y" && continue + [ "${OPTARG}" == "nodocker" ] && INSTALL_NODOCKER="y" && continue + [ "${OPTARG}" == "lightweight" ] && INSTALL_LIGHTWEIGHT="y" && continue + [ "${OPTARG}" == "vimemu" ] && INSTALL_VIMEMU="y" && continue + [ "${OPTARG}" == "elk_stack" ] && INSTALL_ELK="y" && continue + [ "${OPTARG}" == "showopts" ] && SHOWOPTS="y" && continue + [ "${OPTARG}" == "nohostports" ] && NO_HOST_PORTS="y" && continue + [ "${OPTARG}" == "nojuju" ] && INSTALL_NOJUJU="y" && continue + [ "${OPTARG}" == "nodockerbuild" ] && DOCKER_NOBUILD="y" && continue + [ "${OPTARG}" == "nohostclient" ] && INSTALL_NOHOSTCLIENT="y" && continue + [ "${OPTARG}" == "pullimages" ] && continue + [ "${OPTARG}" == "k8s_monitor" ] && INSTALL_K8S_MONITOR="y" && continue + [ "${OPTARG}" == "charmed" ] && CHARMED="y" && continue + [ "${OPTARG}" == "bundle" ] && continue + [ "${OPTARG}" == "k8s" ] && continue + [ "${OPTARG}" == "lxd" ] && continue + [ "${OPTARG}" == "lxd-cred" ] && continue + [ "${OPTARG}" == "microstack" ] && continue + [ "${OPTARG}" == "overlay" ] && continue + [ "${OPTARG}" == "only-vca" ] && continue + [ "${OPTARG}" == "vca" ] && continue + [ "${OPTARG}" == "ha" ] && continue + [ "${OPTARG}" == "tag" ] && continue + [ "${OPTARG}" == "registry" ] && continue + [ "${OPTARG}" == "pla" ] && INSTALL_PLA="y" && continue + [ "${OPTARG}" == "volume" ] && OPENSTACK_ATTACH_VOLUME="true" && continue + [ "${OPTARG}" == "nocachelxdimages" ] && INSTALL_NOCACHELXDIMAGES="y" && continue + echo -e "Invalid option: '--$OPTARG'\n" >&2 + usage && exit 1 + ;; + :) + echo "Option -$OPTARG requires an argument" >&2 + usage && exit 1 + ;; + \?) + echo -e "Invalid option: '-$OPTARG'\n" >&2 + usage && exit 1 + ;; + h) + usage && exit 0 + ;; + y) + ASSUME_YES="y" + ;; + *) + usage && exit 1 + ;; + esac +done + +[ -n "$DOCKER_REGISTRY_URL" ] && parse_docker_registry_url +[ -n "$TO_REBUILD" ] && [ "$TO_REBUILD" != " NONE" ] && echo $TO_REBUILD | grep -q NONE && FATAL "Incompatible option: -m NONE cannot be used with other -m options" +[ -n "$TO_REBUILD" ] && [ "$TO_REBUILD" == " PLA" ] && [ -z "$INSTALL_PLA" ] && FATAL "Incompatible option: -m PLA cannot be used without --pla option" + +if [ -n "$SHOWOPTS" ]; then + dump_vars + exit 0 +fi + +if [ -n "$CHARMED" ]; then + if [ -n "$UNINSTALL" ]; then + ${OSM_DEVOPS}/installers/charmed_uninstall.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D /usr/share/osm-devops -t $DOCKER_TAG "$@" + else + ${OSM_DEVOPS}/installers/charmed_install.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D /usr/share/osm-devops -t $DOCKER_TAG "$@" + fi + + exit 0 +fi + +# if develop, we force master +[ -z "$COMMIT_ID" ] && [ -n "$DEVELOP" ] && COMMIT_ID="master" + +need_packages="git wget curl tar" + +[ -n "$INSTALL_TO_OPENSTACK" ] && install_to_openstack $OPENSTACK_OPENRC_FILE_OR_CLOUD $OPENSTACK_PUBLIC_NET_NAME $OPENSTACK_ATTACH_VOLUME && echo -e "\nDONE" && exit 0 + +echo -e "Checking required packages: $need_packages" +dpkg -l $need_packages &>/dev/null \ + || ! echo -e "One or several required packages are not installed. Updating apt cache requires root privileges." \ + || sudo apt-get update \ + || FATAL "failed to run apt-get update" +dpkg -l $need_packages &>/dev/null \ + || ! echo -e "Installing $need_packages requires root privileges." \ + || sudo apt-get install -y $need_packages \ + || FATAL "failed to install $need_packages" +sudo snap install jq +if [ -z "$OSM_DEVOPS" ]; then + if [ -n "$TEST_INSTALLER" ]; then + echo -e "\nUsing local devops repo for OSM installation" + OSM_DEVOPS="$(dirname $(realpath $(dirname $0)))" + else + echo -e "\nCreating temporary dir for OSM installation" + OSM_DEVOPS="$(mktemp -d -q --tmpdir "installosm.XXXXXX")" + trap 'rm -rf "$OSM_DEVOPS"' EXIT + + git clone https://osm.etsi.org/gerrit/osm/devops.git $OSM_DEVOPS + + if [ -z "$COMMIT_ID" ]; then + echo -e "\nGuessing the current stable release" + LATEST_STABLE_DEVOPS=`git -C $OSM_DEVOPS tag -l v[0-9].* | sort -V | tail -n1` + [ -z "$LATEST_STABLE_DEVOPS" ] && echo "Could not find the current latest stable release" && exit 0 + + echo "Latest tag in devops repo: $LATEST_STABLE_DEVOPS" + COMMIT_ID="tags/$LATEST_STABLE_DEVOPS" + else + echo -e "\nDEVOPS Using commit $COMMIT_ID" + fi + git -C $OSM_DEVOPS checkout $COMMIT_ID + fi +fi + +. $OSM_DEVOPS/common/all_funcs + +[ "${OSM_STACK_NAME}" == "osm" ] || OSM_DOCKER_WORK_DIR="$OSM_WORK_DIR/stack/$OSM_STACK_NAME" +[ -n "$KUBERNETES" ] && OSM_K8S_WORK_DIR="$OSM_DOCKER_WORK_DIR/osm_pods" && OSM_NAMESPACE_VOL="${OSM_HOST_VOL}/${OSM_STACK_NAME}" +[ -n "$INSTALL_LIGHTWEIGHT" ] && [ -n "$UNINSTALL" ] && uninstall_lightweight && echo -e "\nDONE" && exit 0 +[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_ELK" ] && deploy_elk +#[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_PERFMON" ] && deploy_perfmon +[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_VIMEMU" ] && install_vimemu +[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_K8S_MONITOR" ] && install_k8s_monitoring +[ -n "$INSTALL_ONLY" ] && echo -e "\nDONE" && exit 0 + +#Installation starts here +wget -q -O- https://osm-download.etsi.org/ftp/osm-10.0-ten/README.txt &> /dev/null +track start + +[ -n "$INSTALL_LIGHTWEIGHT" ] && install_lightweight && echo -e "\nDONE" && exit 0 +echo -e "\nInstalling OSM from refspec: $COMMIT_ID" +if [ -n "$INSTALL_FROM_SOURCE" ] && [ -z "$ASSUME_YES" ]; then + ! ask_user "The installation will take about 75-90 minutes. Continue (Y/n)? " y && echo "Cancelled!" && exit 1 +fi + +echo -e "Checking required packages: lxd" +lxd --version &>/dev/null || FATAL "lxd not present, exiting." +[ -n "$INSTALL_LXD" ] && echo -e "\nInstalling and configuring lxd" && install_lxd + +# use local devops for containers +export OSM_USE_LOCAL_DEVOPS=true + +#Install osmclient + +#Install vim-emu (optional) +[ -n "$INSTALL_VIMEMU" ] && install_docker_ce && install_vimemu + +wget -q -O- https://osm-download.etsi.org/ftp/osm-10.0-ten/README2.txt &> /dev/null +track end +echo -e "\nDONE" diff --git a/_tmp/osm-install/rel10.install_osm.sh b/_tmp/osm-install/rel10.install_osm.sh new file mode 100644 index 0000000..a581d43 --- /dev/null +++ b/_tmp/osm-install/rel10.install_osm.sh @@ -0,0 +1,160 @@ +#!/bin/bash +# +# 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. +# +REPOSITORY_BASE=https://osm-download.etsi.org/repository/osm/debian +RELEASE=ReleaseTEN +REPOSITORY=stable +DOCKER_TAG=10 +DEVOPS_PATH=/usr/share/osm-devops + +function usage(){ + echo -e "usage: $0 [OPTIONS]" + echo -e "Install OSM from binaries or source code (by default, from binaries)" + echo -e " OPTIONS" + echo -e " -h / --help: print this help" + echo -e " -y: do not prompt for confirmation, assumes yes" + echo -e " -r : use specified repository name for osm packages" + echo -e " -R : use specified release for osm binaries (deb packages, lxd images, ...)" + echo -e " -u : use specified repository url for osm packages" + echo -e " -k : use specified repository public key url" + echo -e " -b : install OSM from source code using a specific branch (master, v2.0, ...) or tag" + echo -e " -b master (main dev branch)" + echo -e " -b v2.0 (v2.0 branch)" + echo -e " -b tags/v1.1.0 (a specific tag)" + echo -e " ..." + echo -e " -c deploy osm services using container . Valid values are or . If -c is not used then osm will be deployed using default orchestrator. When used with --uninstall, osm services deployed by the orchestrator will be uninstalled" + echo -e " -s or user defined stack name when installed using swarm or namespace when installed using k8s, default is osm" + echo -e " -H use specific juju host controller IP" + echo -e " -S use VCA/juju secret key" + echo -e " -P use VCA/juju public key file" + echo -e " -C use VCA/juju CA certificate file" + echo -e " -A use VCA/juju API proxy" + echo -e " --vimemu: additionally deploy the VIM emulator as a docker container" + echo -e " --elk_stack: additionally deploy an ELK docker stack for event logging" + echo -e " --pla: install the PLA module for placement support" + echo -e " -m : install OSM but only rebuild the specified docker images (LW-UI, NBI, LCM, RO, MON, POL, KAFKA, MONGO, PROMETHEUS, PROMETHEUS-CADVISOR, KEYSTONE-DB, PLA, NONE)" + echo -e " -o : ONLY (un)installs one of the addons (vimemu, elk_stack, k8s_monitor)" + echo -e " -O : Install OSM to an OpenStack infrastructure. is required. If a is used, the clouds.yaml file should be under ~/.config/openstack/ or /etc/openstack/" + echo -e " -N : Public network name required to setup OSM to OpenStack" + echo -e " -D use local devops installation path" + echo -e " -w Location to store runtime installation" + echo -e " -t specify osm docker tag (default is latest)" + echo -e " -l: LXD cloud yaml file" + echo -e " -L: LXD credentials yaml file" + echo -e " -K: Specifies the name of the controller to use - The controller must be already bootstrapped" + echo -e " -d use docker registry URL instead of dockerhub" + echo -e " -p set docker proxy URL as part of docker CE configuration" + echo -e " -T specify docker tag for the modules specified with option -m" + echo -e " --nocachelxdimages: do not cache local lxd images, do not create cronjob for that cache (will save installation time, might affect instantiation time)" + echo -e " --nolxd: do not install and configure LXD, allowing unattended installations (assumes LXD is already installed and confifured)" + echo -e " --nodocker: do not install docker, do not initialize a swarm (assumes docker is already installed and a swarm has been initialized)" + echo -e " --nojuju: do not juju, assumes already installed" + echo -e " --nodockerbuild:do not build docker images (use existing locally cached images)" + echo -e " --nohostports: do not expose docker ports to host (useful for creating multiple instances of osm on the same host)" + echo -e " --nohostclient: do not install the osmclient" + echo -e " --uninstall: uninstall OSM: remove the containers and delete NAT rules" + echo -e " --source: install OSM from source code using the latest stable tag" + echo -e " --develop: (deprecated, use '-b master') install OSM from source code using the master branch" + echo -e " --pullimages: pull/run osm images from docker.io/opensourcemano" + echo -e " --k8s_monitor: install the OSM kubernetes monitoring with prometheus and grafana" + echo -e " --volume: create a VM volume when installing to OpenStack" + echo -e " --showopts: print chosen options and exit (only for debugging)" + echo -e " --charmed: Deploy and operate OSM with Charms on k8s" + echo -e " [--bundle ]: Specify with which bundle to deploy OSM with charms (--charmed option)" + echo -e " [--k8s ]: Specify with which kubernetes to deploy OSM with charms (--charmed option)" + echo -e " [--vca ]: Specifies the name of the controller to use - The controller must be already bootstrapped (--charmed option)" + echo -e " [--lxd ]: Takes a YAML file as a parameter with the LXD Cloud information (--charmed option)" + echo -e " [--lxd-cred ]: Takes a YAML file as a parameter with the LXD Credentials information (--charmed option)" + echo -e " [--microstack]: Installs microstack as a vim. (--charmed option)" + echo -e " [--overlay]: Add an overlay to override some defaults of the default bundle (--charmed option)" + echo -e " [--ha]: Installs High Availability bundle. (--charmed option)" + echo -e " [--tag]: Docker image tag. (--charmed option)" + echo -e " [--registry]: Docker registry with optional credentials as user:pass@hostname:port (--charmed option)" + +} + +add_repo() { + REPO_CHECK="^$1" + grep "${REPO_CHECK/\[arch=amd64\]/\\[arch=amd64\\]}" /etc/apt/sources.list > /dev/null 2>&1 + if [ $? -ne 0 ] + then + need_packages_lw="software-properties-common apt-transport-https" + echo -e "Checking required packages: $need_packages_lw" + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "One or several required packages are not installed. Updating apt cache requires root privileges." \ + || sudo apt-get -q update \ + || ! echo "failed to run apt-get update" \ + || exit 1 + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "Installing $need_packages_lw requires root privileges." \ + || sudo apt-get install -y $need_packages_lw \ + || ! echo "failed to install $need_packages_lw" \ + || exit 1 + wget -qO - $REPOSITORY_BASE/$RELEASE/OSM%20ETSI%20Release%20Key.gpg | sudo apt-key add - + sudo DEBIAN_FRONTEND=noninteractive add-apt-repository -y "$1" && sudo DEBIAN_FRONTEND=noninteractive apt-get update + return 0 + fi + + return 1 +} + +clean_old_repo() { +dpkg -s 'osm-devops' &> /dev/null +if [ $? -eq 0 ]; then + # Clean the previous repos that might exist + sudo sed -i "/osm-download.etsi.org/d" /etc/apt/sources.list +fi +} + +while getopts ":b:r:c:n:k:u:R:l:L:K:p:D:o:O:m:N:H:S:s:w:t:U:P:A:d:p:f:F:-: hy" o; do + case "${o}" in + D) + DEVOPS_PATH="${OPTARG}" + ;; + r) + REPOSITORY="${OPTARG}" + ;; + R) + RELEASE="${OPTARG}" + ;; + u) + REPOSITORY_BASE="${OPTARG}" + ;; + t) + DOCKER_TAG="${OPTARG}" + ;; + -) + [ "${OPTARG}" == "help" ] && usage && exit 0 + ;; + :) + echo "Option -$OPTARG requires an argument" >&2 + usage && exit 1 + ;; + \?) + echo -e "Invalid option: '-$OPTARG'\n" >&2 + usage && exit 1 + ;; + h) + usage && exit 0 + ;; + *) + ;; + esac +done + +clean_old_repo +add_repo "deb [arch=amd64] $REPOSITORY_BASE/$RELEASE $REPOSITORY devops" +sudo DEBIAN_FRONTEND=noninteractive apt-get -q update +sudo DEBIAN_FRONTEND=noninteractive apt-get install osm-devops +$DEVOPS_PATH/installers/full_install_osm.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D $DEVOPS_PATH -t $DOCKER_TAG "$@" \ No newline at end of file diff --git a/_tmp/osm-mitm/client.original.py b/_tmp/osm-mitm/client.original.py new file mode 100644 index 0000000..c7f043b --- /dev/null +++ b/_tmp/osm-mitm/client.original.py @@ -0,0 +1,161 @@ +# Copyright 2018 Telefonica +# +# 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. + +""" +OSM SOL005 client API +""" + +# from osmclient.v1 import vca +from osmclient.sol005 import vnfd +from osmclient.sol005 import nsd +from osmclient.sol005 import nst +from osmclient.sol005 import nsi +from osmclient.sol005 import ns +from osmclient.sol005 import vnf +from osmclient.sol005 import vim +from osmclient.sol005 import wim +from osmclient.sol005 import package +from osmclient.sol005 import http +from osmclient.sol005 import sdncontroller +from osmclient.sol005 import project as projectmodule +from osmclient.sol005 import user as usermodule +from osmclient.sol005 import role +from osmclient.sol005 import pdud +from osmclient.sol005 import k8scluster +from osmclient.sol005 import vca +from osmclient.sol005 import repo +from osmclient.sol005 import osmrepo +from osmclient.sol005 import subscription +from osmclient.common import package_tool +import json +import logging + + +class Client(object): + def __init__( + self, + host=None, + so_port=9999, + user="admin", + password="admin", + project="admin", + **kwargs + ): + + self._user = user + self._password = password + self._project = project + self._project_domain_name = kwargs.get("project_domain_name") + self._user_domain_name = kwargs.get("user_domain_name") + self._logger = logging.getLogger("osmclient") + self._auth_endpoint = "/admin/v1/tokens" + self._headers = {} + self._token = None + if len(host.split(":")) > 1: + # backwards compatible, port provided as part of host + self._host = host.split(":")[0] + self._so_port = host.split(":")[1] + else: + self._host = host + self._so_port = so_port + + self._http_client = http.Http( + "https://{}:{}/osm".format(self._host, self._so_port), **kwargs + ) + self._headers["Accept"] = "application/json" + self._headers["Content-Type"] = "application/yaml" + http_header = [ + "{}: {}".format(key, val) for (key, val) in list(self._headers.items()) + ] + self._http_client.set_http_header(http_header) + + self.vnfd = vnfd.Vnfd(self._http_client, client=self) + self.nsd = nsd.Nsd(self._http_client, client=self) + self.nst = nst.Nst(self._http_client, client=self) + self.package = package.Package(self._http_client, client=self) + self.ns = ns.Ns(self._http_client, client=self) + self.nsi = nsi.Nsi(self._http_client, client=self) + self.vim = vim.Vim(self._http_client, client=self) + self.wim = wim.Wim(self._http_client, client=self) + self.sdnc = sdncontroller.SdnController(self._http_client, client=self) + self.vnf = vnf.Vnf(self._http_client, client=self) + self.project = projectmodule.Project(self._http_client, client=self) + self.user = usermodule.User(self._http_client, client=self) + self.role = role.Role(self._http_client, client=self) + self.pdu = pdud.Pdu(self._http_client, client=self) + self.k8scluster = k8scluster.K8scluster(self._http_client, client=self) + self.vca = vca.VCA(self._http_client, client=self) + self.repo = repo.Repo(self._http_client, client=self) + self.osmrepo = osmrepo.OSMRepo(self._http_client, client=self) + self.package_tool = package_tool.PackageTool(client=self) + self.subscription = subscription.Subscription(self._http_client, client=self) + """ + self.vca = vca.Vca(http_client, client=self, **kwargs) + self.utils = utils.Utils(http_client, **kwargs) + """ + + def get_token(self): + self._logger.debug("") + if self._token is None: + postfields_dict = { + "username": self._user, + "password": self._password, + "project_id": self._project, + } + if self._project_domain_name: + postfields_dict["project_domain_name"] = self._project_domain_name + if self._user_domain_name: + postfields_dict["user_domain_name"] = self._user_domain_name + http_code, resp = self._http_client.post_cmd( + endpoint=self._auth_endpoint, + postfields_dict=postfields_dict, + skip_query_admin=True, + ) + # if http_code not in (200, 201, 202, 204): + # message ='Authentication error: not possible to get auth token\nresp:\n{}'.format(resp) + # raise ClientException(message) + + token = json.loads(resp) if resp else None + self._token = token["id"] + + if self._token is not None: + self._headers["Authorization"] = "Bearer {}".format(self._token) + http_header = [ + "{}: {}".format(key, val) + for (key, val) in list(self._headers.items()) + ] + self._http_client.set_http_header(http_header) + + def get_version(self): + _, resp = self._http_client.get2_cmd(endpoint="/version", skip_query_admin=True) + # print(http_code, resp) + try: + resp = json.loads(resp) + version = resp.get("version") + date = resp.get("date") + except ValueError: + version = resp.split()[2] + date = resp.split()[4] + return "{} {}".format(version, date) + + def set_default_params(self, **kwargs): + host = kwargs.pop("host", None) + if host is not None: + self._host = host + port = kwargs.pop("port", None) + if port is not None: + self._so_port = port + self._http_client.set_query_admin(**kwargs) diff --git a/_tmp/osm-mitm/client.py b/_tmp/osm-mitm/client.py new file mode 100644 index 0000000..1cd8ee5 --- /dev/null +++ b/_tmp/osm-mitm/client.py @@ -0,0 +1,162 @@ +# Copyright 2018 Telefonica +# +# 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. + +""" +OSM SOL005 client API +""" + +# from osmclient.v1 import vca +from osmclient.sol005 import vnfd +from osmclient.sol005 import nsd +from osmclient.sol005 import nst +from osmclient.sol005 import nsi +from osmclient.sol005 import ns +from osmclient.sol005 import vnf +from osmclient.sol005 import vim +from osmclient.sol005 import wim +from osmclient.sol005 import package +from osmclient.sol005 import http +from osmclient.sol005 import sdncontroller +from osmclient.sol005 import project as projectmodule +from osmclient.sol005 import user as usermodule +from osmclient.sol005 import role +from osmclient.sol005 import pdud +from osmclient.sol005 import k8scluster +from osmclient.sol005 import vca +from osmclient.sol005 import repo +from osmclient.sol005 import osmrepo +from osmclient.sol005 import subscription +from osmclient.common import package_tool +import json +import logging + + +class Client(object): + def __init__( + self, + host=None, + so_port=9999, + user="admin", + password="admin", + project="admin", + **kwargs + ): + + self._user = user + self._password = password + self._project = project + self._project_domain_name = kwargs.get("project_domain_name") + self._user_domain_name = kwargs.get("user_domain_name") + self._logger = logging.getLogger("osmclient") + self._auth_endpoint = "/admin/v1/tokens" + self._headers = {} + self._token = None + if len(host.split(":")) > 1: + # backwards compatible, port provided as part of host + self._host = host.split(":")[0] + self._so_port = host.split(":")[1] + else: + self._host = host + self._so_port = so_port + + self._http_client = http.Http( + # "https://{}:{}/osm".format(self._host, self._so_port), **kwargs + "http://localhost/osm", **kwargs + ) + self._headers["Accept"] = "application/json" + self._headers["Content-Type"] = "application/yaml" + http_header = [ + "{}: {}".format(key, val) for (key, val) in list(self._headers.items()) + ] + self._http_client.set_http_header(http_header) + + self.vnfd = vnfd.Vnfd(self._http_client, client=self) + self.nsd = nsd.Nsd(self._http_client, client=self) + self.nst = nst.Nst(self._http_client, client=self) + self.package = package.Package(self._http_client, client=self) + self.ns = ns.Ns(self._http_client, client=self) + self.nsi = nsi.Nsi(self._http_client, client=self) + self.vim = vim.Vim(self._http_client, client=self) + self.wim = wim.Wim(self._http_client, client=self) + self.sdnc = sdncontroller.SdnController(self._http_client, client=self) + self.vnf = vnf.Vnf(self._http_client, client=self) + self.project = projectmodule.Project(self._http_client, client=self) + self.user = usermodule.User(self._http_client, client=self) + self.role = role.Role(self._http_client, client=self) + self.pdu = pdud.Pdu(self._http_client, client=self) + self.k8scluster = k8scluster.K8scluster(self._http_client, client=self) + self.vca = vca.VCA(self._http_client, client=self) + self.repo = repo.Repo(self._http_client, client=self) + self.osmrepo = osmrepo.OSMRepo(self._http_client, client=self) + self.package_tool = package_tool.PackageTool(client=self) + self.subscription = subscription.Subscription(self._http_client, client=self) + """ + self.vca = vca.Vca(http_client, client=self, **kwargs) + self.utils = utils.Utils(http_client, **kwargs) + """ + + def get_token(self): + self._logger.debug("") + if self._token is None: + postfields_dict = { + "username": self._user, + "password": self._password, + "project_id": self._project, + } + if self._project_domain_name: + postfields_dict["project_domain_name"] = self._project_domain_name + if self._user_domain_name: + postfields_dict["user_domain_name"] = self._user_domain_name + http_code, resp = self._http_client.post_cmd( + endpoint=self._auth_endpoint, + postfields_dict=postfields_dict, + skip_query_admin=True, + ) + # if http_code not in (200, 201, 202, 204): + # message ='Authentication error: not possible to get auth token\nresp:\n{}'.format(resp) + # raise ClientException(message) + + token = json.loads(resp) if resp else None + self._token = token["id"] + + if self._token is not None: + self._headers["Authorization"] = "Bearer {}".format(self._token) + http_header = [ + "{}: {}".format(key, val) + for (key, val) in list(self._headers.items()) + ] + self._http_client.set_http_header(http_header) + + def get_version(self): + _, resp = self._http_client.get2_cmd(endpoint="/version", skip_query_admin=True) + # print(http_code, resp) + try: + resp = json.loads(resp) + version = resp.get("version") + date = resp.get("date") + except ValueError: + version = resp.split()[2] + date = resp.split()[4] + return "{} {}".format(version, date) + + def set_default_params(self, **kwargs): + host = kwargs.pop("host", None) + if host is not None: + self._host = host + port = kwargs.pop("port", None) + if port is not None: + self._so_port = port + self._http_client.set_query_admin(**kwargs) diff --git a/_tmp/osm-mitm/intercept.md b/_tmp/osm-mitm/intercept.md new file mode 100644 index 0000000..a8c0efa --- /dev/null +++ b/_tmp/osm-mitm/intercept.md @@ -0,0 +1,30 @@ +Intercepting OSM client messages +-------------------------------- + +OSM client only uses HTTPS. Since the code doesn't verify the server +identity, it's easy to set up a man-in-the-middle attack to observe +HTTP traffic between the client and the server---i.e. the NBI, OSM's +north bound interface. To do that, you can install `stunnel` and tweak +the config in this dir---have a look at `stunnel-mitm-proxy.conf`. + +An easier way to catch HTTP messages is to tweak the client code to +make it use plain HTTP without TLS. To see how diff the two Python +files in this dir. + +To monitor HTTP traffic in the OSM host, you have to replace + + /usr/lib/python3/dist-packages/osmclient/sol005/client.py + +with `client.py` in this dir, then + +```bash + $ multipass shell osm + [osm]$ sudo tcpdump -i cni0 -s 1024 -A port 80 +``` + +and use the OSM client, e.g. + +```bash + $ multipass shell osm + [osm]$ osm ns-op-list ldap +``` diff --git a/_tmp/osm-mitm/message-flow.ns-action.upgrade.md b/_tmp/osm-mitm/message-flow.ns-action.upgrade.md new file mode 100644 index 0000000..7ba8828 --- /dev/null +++ b/_tmp/osm-mitm/message-flow.ns-action.upgrade.md @@ -0,0 +1,389 @@ +HTTP message flow for NS upgrade +-------------------------------- + +### GET NS instances content + +HTTP request + +```http +GET /osm/nslcm/v1/ns_instances_content HTTP/1.1 +Host: localhost +User-Agent: PycURL/7.43.0.6 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 +Accept: application/json +Content-Type: application/yaml +Authorization: Bearer T1kxQMgnqty50kmjQZnvfenBbekDt1iG +``` + +HTTP response + +```http +HTTP/1.1 200 OK +Server: nginx/1.14.0 (Ubuntu) +Date: Fri, 10 Sep 2021 14:53:57 GMT +Content-Type: application/json; charset=utf-8 +Content-Length: 12959 +Connection: keep-alive +Set-Cookie: session_id=6460b870282dd3d61fc7c72ff6d9cbc4a738d1ff; expires=Fri, 10 Sep 2021 15:53:57 GMT; HttpOnly; Max-Age=3600; Path=/; Secure + +[ + { + "_id": "0335c32c-d28c-4d79-9b94-0ffa36326932", + "name": "ldap", + "name-ref": "ldap", + "short-name": "ldap", + "admin-status": "ENABLED", + "nsState": "READY", + "currentOperation": "IDLE", + "currentOperationID": null, + "errorDescription": null, + "errorDetail": null, + "deploymentStatus": null, + "configurationStatus": [], + "vcaStatus": null, + "nsd": { + "_id": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "id": "openldap_ns", + "designer": "OSM", + "version": "1.0", + "name": "openldap_ns", + "vnfd-id": [ + "openldap_knf" + ], + "virtual-link-desc": [ + { + "id": "mgmtnet", + "mgmt-network": true + } + ], + "df": [ + { + "id": "default-df", + "vnf-profile": [ + { + "id": "openldap", + "virtual-link-connectivity": [ + { + "constituent-cpd-id": [ + { + "constituent-base-element-id": "openldap", + "constituent-cpd-id": "mgmt-ext" + } + ], + "virtual-link-profile-id": "mgmtnet" + } + ], + "vnfd-id": "openldap_knf" + } + ] + } + ], + "description": "NS consisting of a single KNF openldap_knf connected to mgmt network", + "_admin": { + "userDefinedData": {}, + "created": 1631268635.96618, + "modified": 1631268637.8627107, + "projects_read": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "projects_write": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "onboardingState": "ONBOARDED", + "operationalState": "ENABLED", + "usageState": "NOT_IN_USE", + "storage": { + "fs": "mongo", + "path": "/app/storage/", + "folder": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "pkg-dir": "openldap_ns", + "descriptor": "openldap_ns/openldap_nsd.yaml", + "zipfile": "openldap_ns.tar.gz" + } + } + }, + "datacenter": "4a4425f7-3e72-4d45-a4ec-4241186f3547", + "resource-orchestrator": "osmopenmano", + "description": "default description", + "constituent-vnfr-ref": [ + "ae63ee09-847f-4108-9a22-852899b6e0ae" + ], + "operational-status": "running", + "config-status": "configured", + "detailed-status": "Done", + "orchestration-progress": {}, + "create-time": 1631277626.5666356, + "nsd-name-ref": "openldap_ns", + "operational-events": [], + "nsd-ref": "openldap_ns", + "nsd-id": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "vnfd-id": [ + "d506d18f-0738-42ab-8b45-cfa98da38e7a" + ], + "instantiate_params": { + "nsdId": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "nsName": "ldap", + "nsDescription": "default description", + "vimAccountId": "4a4425f7-3e72-4d45-a4ec-4241186f3547" + }, + "additionalParamsForNs": null, + "ns-instance-config-ref": "0335c32c-d28c-4d79-9b94-0ffa36326932", + "id": "0335c32c-d28c-4d79-9b94-0ffa36326932", + "ssh-authorized-key": null, + "flavor": [], + "image": [], + "vld": [ + { + "id": "mgmtnet", + "mgmt-network": true, + "name": "mgmtnet", + "type": null, + "vim_info": { + "vim:4a4425f7-3e72-4d45-a4ec-4241186f3547": { + "vim_account_id": "4a4425f7-3e72-4d45-a4ec-4241186f3547", + "vim_network_name": null, + "vim_details": "{name: mgmtnet, status: ACTIVE}\n", + "vim_id": "81a7fb44-b765-4b16-985f-13b481d3b892", + "vim_status": "ACTIVE", + "vim_name": "mgmtnet" + } + } + } + ], + "_admin": { + "created": 1631277626.626409, + "modified": 1631285336.7610166, + "projects_read": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "projects_write": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "nsState": "INSTANTIATED", + "current-operation": null, + "nslcmop": null, + "operation-type": null, + "deployed": { + "RO": { + "vnfd": [], + "operational-status": "running" + }, + "VCA": [], + "K8s": [ + { + "kdu-instance": "stable-openldap-1-2-3-0098084071", + "k8scluster-uuid": "kube-system:b33b0bfd-ce33-47b9-b286-a60c8f04b6d9", + "k8scluster-type": "helm-chart-v3", + "member-vnf-index": "openldap", + "kdu-name": "ldap", + "kdu-model": "stable/openldap:1.2.3", + "namespace": "fada443a-905c-4241-8a33-4dcdbdac55e7", + "kdu-deployment-name": "", + "detailed-status": "{'info': {'deleted': '', 'description': 'Install complete', 'first_deployed': '2021-09-10T12:40:56.55575157Z', 'last_deployed': '2021-09-10T12:40:56.55575157Z', 'status': 'deployed'}, 'name': 'stable-openldap-1-2-3-0098084071', 'namespace': 'fada443a-905c-4241-8a33-4dcdbdac55e7', 'version': 1}", + "operation": "install", + "status": "Install complete", + "status-time": "1631277711.4568162" + } + ] + } + } + }, + { + "_id": "136fcc46-c363-4d74-af14-c115fff7d80a", + "name": "ldap2", + "name-ref": "ldap2", + "short-name": "ldap2", + "admin-status": "ENABLED", + "nsState": "READ", + "currentOperation": "IDLE", + "currentOperationID": null, + "errorDescription": null, + "errorDetail": null, + "deploymentStatus": null, + "configurationStatus": [], + "vcaStatus": null, + "nsd": { + "_id": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "id": "openldap_ns", + "designer": "OSM", + "version": "1.0", + "name": "openldap_ns", + "vnfd-id": [ + "openldap_knf" + ], + "virtual-link-desc": [ + { + "id": "mgmtnet", + "mgmt-network": true + } + ], + "df": [ + { + "id": "default-df", + "vnf-profile": [ + { + "id": "openldap", + "virtual-link-connectivity": [ + { + "constituent-cpd-id": [ + { + "constituent-base-element-id": "openldap", + "constituent-cpd-id": "mgmt-ext" + } + ], + "virtual-link-profile-id": "mgmtnet" + } + ], + "vnfd-id": "openldap_knf" + } + ] + } + ], + "description": "NS consisting of a single KNF openldap_knf connected to mgmt network", + "_admin": { + "userDefinedData": {}, + "created": 1631268635.96618, + "modified": 1631268637.8627107, + "projects_read": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "projects_write": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "onboardingState": "ONBOARDED", + "operationalState": "ENABLED", + "usageState": "NOT_IN_USE", + "storage": { + "fs": "mongo", + "path": "/app/storage/", + "folder": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "pkg-dir": "openldap_ns", + "descriptor": "openldap_ns/openldap_nsd.yaml", + "zipfile": "openldap_ns.tar.gz" + } + } + }, + "datacenter": "4a4425f7-3e72-4d45-a4ec-4241186f3547", + "resource-orchestrator": "osmopenmano", + "description": "default description", + "constituent-vnfr-ref": [ + "609ae829-8fbe-44f1-944d-2fba5cd909c2" + ], + "operational-status": "running", + "config-status": "configured", + "detailed-status": "Done", + "orchestration-progress": {}, + "create-time": 1631282159.0447648, + "nsd-name-ref": "openldap_ns", + "operational-events": [], + "nsd-ref": "openldap_ns", + "nsd-id": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "vnfd-id": [ + "d506d18f-0738-42ab-8b45-cfa98da38e7a" + ], + "instantiate_params": { + "nsdId": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "nsName": "ldap2", + "nsDescription": "default description", + "vimAccountId": "4a4425f7-3e72-4d45-a4ec-4241186f3547" + }, + "additionalParamsForNs": null, + "ns-instance-config-ref": "136fcc46-c363-4d74-af14-c115fff7d80a", + "id": "136fcc46-c363-4d74-af14-c115fff7d80a", + "ssh-authorized-key": null, + "flavor": [], + "image": [], + "vld": [ + { + "id": "mgmtnet", + "mgmt-network": true, + "name": "mgmtnet", + "type": null, + "vim_info": { + "vim:4a4425f7-3e72-4d45-a4ec-4241186f3547": { + "vim_account_id": "4a4425f7-3e72-4d45-a4ec-4241186f3547", + "vim_network_name": null, + "vim_details": "{name: mgmtnet, status: ACTIVE}\n", + "vim_id": "81a7fb44-b765-4b16-985f-13b481d3b892", + "vim_status": "ACTIVE", + "vim_name": "mgmtnet" + } + } + } + ], + "_admin": { + "created": 1631282159.0555632, + "modified": 1631285403.5654724, + "projects_read": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "projects_write": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "nsState": "INSTANTIATED", + "current-operation": null, + "nslcmop": null, + "operation-type": null, + "deployed": { + "RO": { + "vnfd": [], + "operational-status": "running" + }, + "VCA": [], + "K8s": [ + { + "kdu-instance": "stable-openldap-1-2-3-0044064996", + "k8scluster-uuid": "kube-system:b33b0bfd-ce33-47b9-b286-a60c8f04b6d9", + "k8scluster-type": "helm-chart-v3", + "member-vnf-index": "openldap", + "kdu-name": "ldap", + "kdu-model": "stable/openldap:1.2.3", + "namespace": "fada443a-905c-4241-8a33-4dcdbdac55e7", + "kdu-deployment-name": "", + "detailed-status": "{'config': {'replicaCount': '2'}, 'info': {'deleted': '', 'description': 'Install complete', 'first_deployed': '2021-09-10T13:56:20.089257801Z', 'last_deployed': '2021-09-10T13:56:20.089257801Z', 'status': 'deployed'}, 'name': 'stable-openldap-1-2-3-0044064996', 'namespace': 'fada443a-905c-4241-8a33-4dcdbdac55e7', 'version': 1}", + "operation": "install", + "status": "Install complete", + "status-time": "1631282216.1732676" + } + ] + } + } + } +] +``` + +Notice OSM client reissues the same `GET` again after this. This duplication +of HTTP requests might well be a bug... + + +### POST target NS instance action + +HTTP request + +```http +POST /osm/nslcm/v1/ns_instances/0335c32c-d28c-4d79-9b94-0ffa36326932/action HTTP/1.1 +Host: localhost +User-Agent: PycURL/7.43.0.6 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 +Accept: application/json +Content-Type: application/yaml +Authorization: Bearer T1kxQMgnqty50kmjQZnvfenBbekDt1iG +Content-Length: 136 + +{"member_vnf_index": "openldap", "kdu_name": "ldap", "primitive": "upgrade", "primitive_params": {"kdu_model": "stable/openldap:1.2.2"}} +``` + +HTTP response + +```http +HTTP/1.1 202 Accepted +Server: nginx/1.14.0 (Ubuntu) +Date: Fri, 10 Sep 2021 14:53:57 GMT +Content-Type: application/json; charset=utf-8 +Content-Length: 53 +Connection: keep-alive +Location: /osm/nslcm/v1/ns_lcm_op_occs/5c6e4a0d-6238-4aa8-9147-e4e738bf16f4 +Set-Cookie: session_id=b7d8768fac6d48c9fc51f6c682592273cc7a3f63; expires=Fri, 10 Sep 2021 15:53:57 GMT; HttpOnly; Max-Age=3600; Path=/; Secure + +{ + "id": "5c6e4a0d-6238-4aa8-9147-e4e738bf16f4" +} +``` diff --git a/_tmp/osm-mitm/message-flow.ns-action.upgrade2.md b/_tmp/osm-mitm/message-flow.ns-action.upgrade2.md new file mode 100644 index 0000000..419aa62 --- /dev/null +++ b/_tmp/osm-mitm/message-flow.ns-action.upgrade2.md @@ -0,0 +1,389 @@ +HTTP message flow for NS upgrade +-------------------------------- + +### GET NS instances content + +HTTP request + +```http +GET /osm/nslcm/v1/ns_instances_content HTTP/1.1 +Host: localhost +User-Agent: PycURL/7.43.0.6 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 +Accept: application/json +Content-Type: application/yaml +Authorization: Bearer Rxb9XReQHdW6XmtjKLFLToLs0W0XbD7n +``` + +HTTP response + +```http +HTTP/1.1 200 OK +Server: nginx/1.14.0 (Ubuntu) +Date: Fri, 10 Sep 2021 17:24:59 GMT +Content-Type: application/json; charset=utf-8 +Content-Length: 13396 +Connection: keep-alive +Set-Cookie: session_id=02efc3019fd72867333ec8223528ed6fbcf022ed; expires=Fri, 10 Sep 2021 18:24:59 GMT; HttpOnly; Max-Age=3600; Path=/; Secure + +[ + { + "_id": "0335c32c-d28c-4d79-9b94-0ffa36326932", + "name": "ldap", + "name-ref": "ldap", + "short-name": "ldap", + "admin-status": "ENABLED", + "nsState": "READY", + "currentOperation": "IDLE", + "currentOperationID": null, + "errorDescription": null, + "errorDetail": null, + "deploymentStatus": null, + "configurationStatus": [], + "vcaStatus": null, + "nsd": { + "_id": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "id": "openldap_ns", + "designer": "OSM", + "version": "1.0", + "name": "openldap_ns", + "vnfd-id": [ + "openldap_knf" + ], + "virtual-link-desc": [ + { + "id": "mgmtnet", + "mgmt-network": true + } + ], + "df": [ + { + "id": "default-df", + "vnf-profile": [ + { + "id": "openldap", + "virtual-link-connectivity": [ + { + "constituent-cpd-id": [ + { + "constituent-base-element-id": "openldap", + "constituent-cpd-id": "mgmt-ext" + } + ], + "virtual-link-profile-id": "mgmtnet" + } + ], + "vnfd-id": "openldap_knf" + } + ] + } + ], + "description": "NS consisting of a single KNF openldap_knf connected to mgmt network", + "_admin": { + "userDefinedData": {}, + "created": 1631268635.96618, + "modified": 1631268637.8627107, + "projects_read": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "projects_write": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "onboardingState": "ONBOARDED", + "operationalState": "ENABLED", + "usageState": "NOT_IN_USE", + "storage": { + "fs": "mongo", + "path": "/app/storage/", + "folder": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "pkg-dir": "openldap_ns", + "descriptor": "openldap_ns/openldap_nsd.yaml", + "zipfile": "openldap_ns.tar.gz" + } + } + }, + "datacenter": "4a4425f7-3e72-4d45-a4ec-4241186f3547", + "resource-orchestrator": "osmopenmano", + "description": "default description", + "constituent-vnfr-ref": [ + "ae63ee09-847f-4108-9a22-852899b6e0ae" + ], + "operational-status": "running", + "config-status": "configured", + "detailed-status": "Done", + "orchestration-progress": {}, + "create-time": 1631277626.5666356, + "nsd-name-ref": "openldap_ns", + "operational-events": [], + "nsd-ref": "openldap_ns", + "nsd-id": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "vnfd-id": [ + "d506d18f-0738-42ab-8b45-cfa98da38e7a" + ], + "instantiate_params": { + "nsdId": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "nsName": "ldap", + "nsDescription": "default description", + "vimAccountId": "4a4425f7-3e72-4d45-a4ec-4241186f3547" + }, + "additionalParamsForNs": null, + "ns-instance-config-ref": "0335c32c-d28c-4d79-9b94-0ffa36326932", + "id": "0335c32c-d28c-4d79-9b94-0ffa36326932", + "ssh-authorized-key": null, + "flavor": [], + "image": [], + "vld": [ + { + "id": "mgmtnet", + "mgmt-network": true, + "name": "mgmtnet", + "type": null, + "vim_info": { + "vim:4a4425f7-3e72-4d45-a4ec-4241186f3547": { + "vim_account_id": "4a4425f7-3e72-4d45-a4ec-4241186f3547", + "vim_network_name": null, + "vim_details": "{name: mgmtnet, status: ACTIVE}\n", + "vim_id": "81a7fb44-b765-4b16-985f-13b481d3b892", + "vim_status": "ACTIVE", + "vim_name": "mgmtnet" + } + } + } + ], + "_admin": { + "created": 1631277626.626409, + "modified": 1631285667.3411994, + "projects_read": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "projects_write": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "nsState": "INSTANTIATED", + "current-operation": null, + "nslcmop": null, + "operation-type": null, + "deployed": { + "RO": { + "vnfd": [], + "operational-status": "running" + }, + "VCA": [], + "K8s": [ + { + "kdu-instance": "stable-openldap-1-2-3-0098084071", + "k8scluster-uuid": "kube-system:b33b0bfd-ce33-47b9-b286-a60c8f04b6d9", + "k8scluster-type": "helm-chart-v3", + "member-vnf-index": "openldap", + "kdu-name": "ldap", + "kdu-model": "stable/openldap:1.2.3", + "namespace": "fada443a-905c-4241-8a33-4dcdbdac55e7", + "kdu-deployment-name": "", + "detailed-status": "{'info': {'deleted': '', 'description': 'Rollback \"stable-openldap-1-2-3-0098084071\" failed: cannot patch \"stable-openldap-1-2-3-0098084071\" with kind Service: Service \"stable-openldap-1-2-3-0098084071\" is invalid: spec.clusterIP: Invalid value: \"\": field is immutable', 'first_deployed': '2021-09-10T12:40:56.55575157Z', 'last_deployed': '2021-09-10T14:54:26.378456605Z', 'status': 'failed'}, 'name': 'stable-openldap-1-2-3-0098084071', 'namespace': 'fada443a-905c-4241-8a33-4dcdbdac55e7', 'version': 3}", + "operation": "upgrade", + "status": "Rollback \"stable-openldap-1-2-3-0098084071\" failed: cannot patch \"stable-openldap-1-2-3-0098084071\" with kind Service: Service \"stab\" is invalid: spec.clusterIP: Invalid value: \"\": field is immutable", + "status-time": "1631285667.3301775" + } + ] + } + } + }, + { + "_id": "136fcc46-c363-4d74-af14-c115fff7d80a", + "name": "ldap2", + "name-ref": "ldap2", + "short-name": "ldap2", + "admin-status": "ENABLED", + "nsState": "READY", + "currentOperation": "IDLE", + "currentOperationID": null, + "errorDescription": null, + "errorDetail": null, + "deploymentStatus": null, + "configurationStatus": [], + "vcaStatus": null, + "nsd": { + "_id": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "id": "openldap_ns", + "designer": "OSM", + "version": "1.0", + "name": "openldap_ns", + "vnfd-id": [ + "openldap_knf" + ], + "virtual-link-desc": [ + { + "id": "mgmtnet", + "mgmt-network": true + } + ], + "df": [ + { + "id": "default-df", + "vnf-profile": [ + { + "id": "openldap", + "virtual-link-connectivity": [ + { + "constituent-cpd-id": [ + { + "constituent-base-element-id": "openldap", + "constituent-cpd-id": "mgmt-ext" + } + ], + "virtual-link-profile-id": "mgmtnet" + } + ], + "vnfd-id": "openldap_knf" + } + ] + } + ], + "description": "NS consisting of a single KNF openldap_knf connected to mgmt network", + "_admin": { + "userDefinedData": {}, + "created": 1631268635.96618, + "modified": 1631268637.8627107, + "projects_read": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "projects_write": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "onboardingState": "ONBOARDED", + "operationalState": "ENABLED", + "usageState": "NOT_IN_USE", + "storage": { + "fs": "mongo", + "path": "/app/storage/", + "folder": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "pkg-dir": "openldap_ns", + "descriptor": "openldap_ns/openldap_nsd.yaml", + "zipfile": "openldap_ns.tar.gz" + } + } + }, + "datacenter": "4a4425f7-3e72-4d45-a4ec-4241186f3547", + "resource-orchestrator": "osmopenmano", + "description": "default description", + "constituent-vnfr-ref": [ + "609ae829-8fbe-44f1-944d-2fba5cd909c2" + ], + "operational-status": "running", + "config-status": "configured", + "detailed-status": "Done", + "orchestration-progress": {}, + "create-time": 1631282159.0447648, + "nsd-name-ref": "openldap_ns", + "operational-events": [], + "nsd-ref": "openldap_ns", + "nsd-id": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "vnfd-id": [ + "d506d18f-0738-42ab-8b45-cfa98da38e7a" + ], + "instantiate_params": { + "nsdId": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "nsName": "ldap2", + "nsDescription": "default description", + "vimAccountId": "4a4425f7-3e72-4d45-a4ec-4241186f3547" + }, + "additionalParamsForNs": null, + "ns-instance-config-ref": "136fcc46-c363-4d74-af14-c115fff7d80a", + "id": "136fcc46-c363-4d74-af14-c115fff7d80a", + "ssh-authorized-key": null, + "flavor": [], + "image": [], + "vld": [ + { + "id": "mgmtnet", + "mgmt-network": true, + "name": "mgmtnet", + "type": null, + "vim_info": { + "vim:4a4425f7-3e72-4d45-a4ec-4241186f3547": { + "vim_account_id": "4a4425f7-3e72-4d45-a4ec-4241186f3547", + "vim_network_name": null, + "vim_details": "{name: mgmtnet, status: ACTIVE}\n", + "vim_id": "81a7fb44-b765-4b16-985f-13b481d3b892", + "vim_status": "ACTIVE", + "vim_name": "mgmtnet" + } + } + } + ], + "_admin": { + "created": 1631282159.0555632, + "modified": 1631285403.5654724, + "projects_read": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "projects_write": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "nsState": "INSTANTIATED", + "current-operation": null, + "nslcmop": null, + "operation-type": null, + "deployed": { + "RO": { + "vnfd": [], + "operational-status": "running" + }, + "VCA": [], + "K8s": [ + { + "kdu-instance": "stable-openldap-1-2-3-0044064996", + "k8scluster-uuid": "kube-system:b33b0bfd-ce33-47b9-b286-a60c8f04b6d9", + "k8scluster-type": "helm-chart-v3", + "member-vnf-index": "openldap", + "kdu-name": "ldap", + "kdu-model": "stable/openldap:1.2.3", + "namespace": "fada443a-905c-4241-8a33-4dcdbdac55e7", + "kdu-deployment-name": "", + "detailed-status": "{'config': {'replicaCount': '2'}, 'info': {'deleted': '', 'description': 'Install complete', 'first_deployed': '2021-09-10T13:56:20.089257801Z', 'last_deployed': '2021-09-10T13:56:20.089257801Z', 'status': 'deployed'}, 'name': 'stable-openldap-1-2-3-0044064996', 'namespace': 'fada443a-905c-4241-8a33-4dcdbdac55e7', 'version': 1}", + "operation": "install", + "status": "Install complete", + "status-time": "1631282216.1732676" + } + ] + } + } + } +] +``` + +Notice OSM client reissues the same `GET` again after this. This duplication +of HTTP requests might well be a bug... + + +### POST target NS instance action + +HTTP request + +```http +POST /osm/nslcm/v1/ns_instances/136fcc46-c363-4d74-af14-c115fff7d80a/action HTTP/1.1 +Host: localhost +User-Agent: PycURL/7.43.0.6 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 +Accept: application/json +Content-Type: application/yaml +Authorization: Bearer Rxb9XReQHdW6XmtjKLFLToLs0W0XbD7n +Content-Length: 119 + +{"member_vnf_index": "openldap", "kdu_name": "ldap", "primitive": "upgrade", "primitive_params": {"replicaCount": "3"}} +``` + +HTTP response + +```http +HTTP/1.1 202 Accepted +Server: nginx/1.14.0 (Ubuntu) +Date: Fri, 10 Sep 2021 17:25:00 GMT +Content-Type: application/json; charset=utf-8 +Content-Length: 53 +Connection: keep-alive +Location: /osm/nslcm/v1/ns_lcm_op_occs/f92f746f-c10a-448e-84e1-3acfd8b684cb +Set-Cookie: session_id=ca59ba9d0d29c0535d2273935498383e9af28a68; expires=Fri, 10 Sep 2021 18:24:59 GMT; HttpOnly; Max-Age=3600; Path=/; Secure + +{ + "id": "f92f746f-c10a-448e-84e1-3acfd8b684cb" +} +``` diff --git a/_tmp/osm-mitm/message-flow.ns-create.md b/_tmp/osm-mitm/message-flow.ns-create.md new file mode 100644 index 0000000..26636c5 --- /dev/null +++ b/_tmp/osm-mitm/message-flow.ns-create.md @@ -0,0 +1,269 @@ +HTTP message flow for NS create +------------------------------- + + +### GET NS descriptors + +HTTP request + +```http +GET /osm/nsd/v1/ns_descriptors HTTP/1.1 +Host: localhost +User-Agent: PycURL/7.43.0.6 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 +Accept: application/json +Content-Type: application/yaml +Authorization: Bearer 0WhgBufy1Wt82NbF9OsmftwpRfcsV4sU +``` + +HTTP response + +```http +HTTP/1.1 200 OK +Server: nginx/1.14.0 (Ubuntu) +Date: Fri, 10 Sep 2021 12:40:26 GMT +Content-Type: application/json; charset=utf-8 +Content-Length: 2519 +Connection: keep-alive +Set-Cookie: session_id=3eaf925831bd0aa54527956e5f5ca009e3c0ee82; expires=Fri, 10 Sep 2021 13:40:26 GMT; HttpOnly; Max-Age=3600; Path=/; Secure + +[ + { + "_id": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "id": "openldap_ns", + "designer": "OSM", + "version": "1.0", + "name": "openldap_ns", + "vnfd-id": [ + "openldap_knf" + ], + "virtual-link-desc": [ + { + "id": "mgmtnet", + "mgmt-network": true + } + ], + "df": [ + { + "id": "default-df", + "vnf-profile": [ + { + "id": "openldap", + "virtual-link-connectivity": [ + { + "constituent-cpd-id": [ + { + "constituent-base-element-id": "openldap", + "constituent-cpd-id": "mgmt-ext" + } + ], + "virtual-link-profile-id": "mgmtnet" + } + ], + "vnfd-id": "openldap_knf" + } + ] + } + ], + "description": "NS consisting of a single KNF openldap_knf connected to mgmt network", + "_admin": { + "userDefinedData": {}, + "created": 1631268635.96618, + "modified": 1631268637.8627107, + "projects_read": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "projects_write": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "onboardingState": "ONBOARDED", + "operationalState": "ENABLED", + "usageState": "NOT_IN_USE", + "storage": { + "fs": "mongo", + "path": "/app/storage/", + "folder": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "pkg-dir": "openldap_ns", + "descriptor": "openldap_ns/openldap_nsd.yaml", + "zipfile": "openldap_ns.tar.gz" + } + }, + "nsdOnboardingState": "ONBOARDED", + "nsdOperationalState": "ENABLED", + "nsdUsageState": "NOT_IN_USE", + "_links": { + "self": { + "href": "/nsd/v1/ns_descriptors/aba58e40-d65f-4f4e-be0a-e248c14d3e03" + }, + "nsd_content": { + "href": "/nsd/v1/ns_descriptors/aba58e40-d65f-4f4e-be0a-e248c14d3e03/nsd_content" + } + } + } +] +``` + + +### GET VIM accounts + +HTTP request + +```http +GET /osm/admin/v1/vim_accounts HTTP/1.1 +Host: localhost +User-Agent: PycURL/7.43.0.6 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 +Accept: application/json +Content-Type: application/yaml +Authorization: Bearer 0WhgBufy1Wt82NbF9OsmftwpRfcsV4sU +``` + +HTTP response + +```http +HTTP/1.1 200 OK +Server: nginx/1.14.0 (Ubuntu) +Date: Fri, 10 Sep 2021 12:40:26 GMT +Content-Type: application/json; charset=utf-8 +Content-Length: 1187 +Connection: keep-alive +Set-Cookie: session_id=67f9cd441ece24102eed7d5f771dea5dc86a0cea; expires=Fri, 10 Sep 2021 13:40:26 GMT; HttpOnly; Max-Age=3600; Path=/; Secure + +[ + { + "_id": "4a4425f7-3e72-4d45-a4ec-4241186f3547", + "name": "mylocation1", + "vim_type": "dummy", + "description": null, + "vim_url": "http://localhost/dummy", + "vim_user": "u", + "vim_password": "fNnfmd3KFXvfyVKu3nzItg==", + "vim_tenant_name": "p", + "_admin": { + "created": 1631212983.5388303, + "modified": 1631212983.5388303, + "projects_read": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "projects_write": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "operationalState": "ENABLED", + "operations": [ + { + "lcmOperationType": "create", + "operationState": "COMPLETED", + "startTime": 1631212983.5930278, + "statusEnteredTime": 1631212984.0220273, + "operationParams": null + } + ], + "current_operation": null, + "detailed-status": "" + }, + "schema_version": "1.11", + "admin": { + "current_operation": 0 + } + } +] +``` + + +### GET target VIM account + +HTTP request + +```http +GET /osm/admin/v1/vim_accounts/4a4425f7-3e72-4d45-a4ec-4241186f3547 HTTP/1.1 +Host: localhost +User-Agent: PycURL/7.43.0.6 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 +Accept: application/json +Content-Type: application/yaml +Authorization: Bearer 0WhgBufy1Wt82NbF9OsmftwpRfcsV4sU +``` + +HTTP response + +```http +HTTP/1.1 200 OK +Server: nginx/1.14.0 (Ubuntu) +Date: Fri, 10 Sep 2021 12:40:26 GMT +Content-Type: application/json; charset=utf-8 +Content-Length: 1039 +Connection: keep-alive +Set-Cookie: session_id=148a2c1099ef30f602784217aaac3d96db3214a7; expires=Fri, 10 Sep 2021 13:40:26 GMT; HttpOnly; Max-Age=3600; Path=/; Secure + +{ + "_id": "4a4425f7-3e72-4d45-a4ec-4241186f3547", + "name": "mylocation1", + "vim_type": "dummy", + "description": null, + "vim_url": "http://localhost/dummy", + "vim_user": "u", + "vim_password": "fNnfmd3KFXvfyVKu3nzItg==", + "vim_tenant_name": "p", + "_admin": { + "created": 1631212983.5388303, + "modified": 1631212983.5388303, + "projects_read": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "projects_write": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "operationalState": "ENABLED", + "operations": [ + { + "lcmOperationType": "create", + "operationState": "COMPLETED", + "startTime": 1631212983.5930278, + "statusEnteredTime": 1631212984.0220273, + "operationParams": null + } + ], + "current_operation": null, + "detailed-status": "" + }, + "schema_version": "1.11", + "admin": { + "current_operation": 0 + } +} +``` + +Notice OSM client reissues the same `GET` again after this. This duplication +of HTTP requests might well be a bug... + + +### POST NS instance content + +HTTP request + +```http +POST /osm/nslcm/v1/ns_instances_content HTTP/1.1 +Host: localhost +User-Agent: PycURL/7.43.0.6 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 +Accept: application/json +Content-Type: application/yaml +Authorization: Bearer 0WhgBufy1Wt82NbF9OsmftwpRfcsV4sU +Content-Length: 163 + +{"nsdId": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", "nsName": "ldap", "nsDescription": "default description", "vimAccountId": "4a4425f7-3e72-4d45-a4ec-4241186f3547"} +``` + +HTTP response + +```http +HTTP/1.1 201 Created +Server: nginx/1.14.0 (Ubuntu) +Date: Fri, 10 Sep 2021 12:40:26 GMT +Content-Type: application/json; charset=utf-8 +Content-Length: 111 +Connection: keep-alive +Location: /osm/nslcm/v1/ns_instances_content/0335c32c-d28c-4d79-9b94-0ffa36326932 +Set-Cookie: session_id=b97dbb71441703a0d650c5f66b1f08630dabc0b8; expires=Fri, 10 Sep 2021 13:40:26 GMT; HttpOnly; Max-Age=3600; Path=/; Secure + +{ + "id": "0335c32c-d28c-4d79-9b94-0ffa36326932", + "nslcmop_id": "0c5464da-df42-498e-b306-76d470b76a0d" +} +``` \ No newline at end of file diff --git a/_tmp/osm-mitm/message-flow.ns-create2.md b/_tmp/osm-mitm/message-flow.ns-create2.md new file mode 100644 index 0000000..2465ece --- /dev/null +++ b/_tmp/osm-mitm/message-flow.ns-create2.md @@ -0,0 +1,203 @@ +HTTP message flow for NS create 2 +--------------------------------- + +### GET NS descriptors + +HTTP request + +```http +GET /osm/nsd/v1/ns_descriptors HTTP/1.1 +Host: localhost +User-Agent: PycURL/7.43.0.6 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 +Accept: application/json +Content-Type: application/yaml +Authorization: Bearer lKGRJmJQdpz9yasXikIUdD5SivCf3tXF +``` + +HTTP response + +```http +HTTP/1.1 200 OK +Server: nginx/1.14.0 (Ubuntu) +Date: Fri, 10 Sep 2021 13:55:58 GMT +Content-Type: application/json; charset=utf-8 +Content-Length: 2519 +Connection: keep-alive +Set-Cookie: session_id=b4a5a5b5b2519f6550ea3bea5efdbf2f4f9ad517; expires=Fri, 10 Sep 2021 14:55:58 GMT; HttpOnly; Max-Age=3600; Path=/; Secure + +[ + { + "_id": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "id": "openldap_ns", + "designer": "OSM", + "version": "1.0", + "name": "openldap_ns", + "vnfd-id": [ + "openldap_knf" + ], + "virtual-link-desc": [ + { + "id": "mgmtnet", + "mgmt-network": true + } + ], + "df": [ + { + "id": "default-df", + "vnf-profile": [ + { + "id": "openldap", + "virtual-link-connectivity": [ + { + "constituent-cpd-id": [ + { + "constituent-base-element-id": "openldap", + "constituent-cpd-id": "mgmt-ext" + } + ], + "virtual-link-profile-id": "mgmtnet" + } + ], + "vnfd-id": "openldap_knf" + } + ] + } + ], + "description": "NS consisting of a single KNF openldap_knf connected to mgmt network", + "_admin": { + "userDefinedData": {}, + "created": 1631268635.96618, + "modified": 1631268637.8627107, + "projects_read": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "projects_write": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "onboardingState": "ONBOARDED", + "operationalState": "ENABLED", + "usageState": "NOT_IN_USE", + "storage": { + "fs": "mongo", + "path": "/app/storage/", + "folder": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", + "pkg-dir": "openldap_ns", + "descriptor": "openldap_ns/openldap_nsd.yaml", + "zipfile": "openldap_ns.tar.gz" + } + }, + "nsdOnboardingState": "ONBOARDED", + "nsdOperationalState": "ENABLED", + "nsdUsageState": "NOT_IN_USE", + "_links": { + "self": { + "href": "/nsd/v1/ns_descriptors/aba58e40-d65f-4f4e-be0a-e248c14d3e03" + }, + "nsd_content": { + "href": "/nsd/v1/ns_descriptors/aba58e40-d65f-4f4e-be0a-e248c14d3e03/nsd_content" + } + } + } +] +``` + + +### GET target VIM account + +HTTP request + +```http +GET /osm/admin/v1/vim_accounts/4a4425f7-3e72-4d45-a4ec-4241186f3547 HTTP/1.1 +Host: localhost +User-Agent: PycURL/7.43.0.6 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 +Accept: application/json +Content-Type: application/yaml +Authorization: Bearer lKGRJmJQdpz9yasXikIUdD5SivCf3tXF +``` + +HTTP response + +```http +HTTP/1.1 200 OK +Server: nginx/1.14.0 (Ubuntu) +Date: Fri, 10 Sep 2021 13:55:58 GMT +Content-Type: application/json; charset=utf-8 +Content-Length: 1039 +Connection: keep-alive +Set-Cookie: session_id=850ace39d2abbe728dcfd089e7e9407b90a7ec43; expires=Fri, 10 Sep 2021 14:55:58 GMT; HttpOnly; Max-Age=3600; Path=/; Secure + +{ + "_id": "4a4425f7-3e72-4d45-a4ec-4241186f3547", + "name": "mylocation1", + "vim_type": "dummy", + "description": null, + "vim_url": "http://localhost/dummy", + "vim_user": "u", + "vim_password": "fNnfmd3KFXvfyVKu3nzItg==", + "vim_tenant_name": "p", + "_admin": { + "created": 1631212983.5388303, + "modified": 1631212983.5388303, + "projects_read": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "projects_write": [ + "fada443a-905c-4241-8a33-4dcdbdac55e7" + ], + "operationalState": "ENABLED", + "operations": [ + { + "lcmOperationType": "create", + "operationState": "COMPLETED", + "startTime": 1631212983.5930278, + "statusEnteredTime": 1631212984.0220273, + "operationParams": null + } + ], + "current_operation": null, + "detailed-status": "" + }, + "schema_version": "1.11", + "admin": { + "current_operation": 0 + } +} +``` + +Notice OSM client reissues the same `GET` again after this. This duplication +of HTTP requests might well be a bug... + + +### POST NS instance content + +HTTP request + +```http +POST /osm/nslcm/v1/ns_instances_content HTTP/1.1 +Host: localhost +User-Agent: PycURL/7.43.0.6 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 +Accept: application/json +Content-Type: application/yaml +Authorization: Bearer lKGRJmJQdpz9yasXikIUdD5SivCf3tXF +Content-Length: 319 + +{"nsdId": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", "nsName": "ldap2", "nsDescription": "default description", "vimAccountId": "4a4425f7-3e72-4d45-a4ec-4241186f3547", "additionalParamsForVnf": [{"member-vnf-index": "openldap", "additionalParamsForKdu": [{"kdu_name": "ldap", "additionalParams": {"replicaCount": "2"}}]}]} +``` + +HTTP response + +```http +HTTP/1.1 201 Created +Server: nginx/1.14.0 (Ubuntu) +Date: Fri, 10 Sep 2021 13:55:59 GMT +Content-Type: application/json; charset=utf-8 +Content-Length: 111 +Connection: keep-alive +Location: /osm/nslcm/v1/ns_instances_content/136fcc46-c363-4d74-af14-c115fff7d80a +Set-Cookie: session_id=0d478e27eccc45667ff15c405362764cb6add7cd; expires=Fri, 10 Sep 2021 14:55:58 GMT; HttpOnly; Max-Age=3600; Path=/; Secure + +{ + "id": "136fcc46-c363-4d74-af14-c115fff7d80a", + "nslcmop_id": "b7b6b8a6-f4f2-4862-99bc-f2c73fbf8736" +} +``` diff --git a/_tmp/osm-mitm/message-flows.md b/_tmp/osm-mitm/message-flows.md new file mode 100644 index 0000000..a09c23d --- /dev/null +++ b/_tmp/osm-mitm/message-flows.md @@ -0,0 +1,374 @@ +OSM client HTTP message flows +----------------------------- +> Or what the heck OSM client does under the bonnet. + + +### Getting an auth token + +This happens every time you run an `osm` command, i.e. tokens aren't cached! +Example flow + +```http +POST /osm/admin/v1/tokens HTTP/1.1 +Host: localhost +User-Agent: PycURL/7.43.0.6 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 +Accept: application/json +Content-Type: application/yaml +Content-Length: 65 + +{"username": "admin", "password": "admin", "project_id": "admin"} +``` + +```http +HTTP/1.1 200 OK +Server: nginx/1.14.0 (Ubuntu) +Date: Wed, 08 Sep 2021 17:52:11 GMT +Content-Type: application/json; charset=utf-8 +Content-Length: 549 +Connection: keep-alive +Www-Authenticate: Bearer realm="Needed a token or Authorization http header" +Location: /osm/admin/v1/tokens/TuD41hLjDvjlR2cPcAFvWcr6FGvRhIk2 +Set-Cookie: session_id=072faf1c629771cdad9133c133fe8bee1202f258; expires=Wed, 08 Sep 2021 18:52:11 GMT; HttpOnly; Max-Age=3600; Path=/; Secure + +{ + "issued_at": 1631123531.1251214, + "expires": 1631127131.1251214, + "_id": "TuD41hLjDvjlR2cPcAFvWcr6FGvRhIk2", + "id": "TuD41hLjDvjlR2cPcAFvWcr6FGvRhIk2", + "project_id": "fada443a-905c-4241-8a33-4dcdbdac55e7", + "project_name": "admin", + "username": "admin", + "user_id": "5c6f2d64-9c23-4718-806a-c74c3fc3c98f", + "admin": true, + "roles": [ + { + "name": "system_admin", + "id": "cb545e44-cd2b-4c0b-93aa-7e2cee79afc3" + } + ], +... +``` + +Notice the token is valid for an hour: + + issued_at = Wednesday, 8 September 2021 17:52:11.125 (GMT) + expires = Wednesday, 8 September 2021 18:52:11.125 (GMT) + + +### Getting the history of operations on an NS instance + +OSM client command + +```bash +$ osm ns-op-list ldap +ERROR: ns 'ldap' not found +``` + +HTTP request + +```http +GET /osm/nslcm/v1/ns_instances_content HTTP/1.1 +Host: localhost +User-Agent: PycURL/7.43.0.6 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 +Accept: application/json +Content-Type: application/yaml +Authorization: Bearer qIFJhw2JkGbgBToJiuKgYNSKuFgnQlYX +``` + +HTTP response + +```http +.HTTP/1.1 200 OK +Server: nginx/1.14.0 (Ubuntu) +Date: Thu, 09 Sep 2021 14:19:53 GMT +Content-Type: application/json; charset=utf-8 +Content-Length: 3 +Connection: keep-alive +Set-Cookie: session_id=321df9a60ac919141432e830cfcd8cb306f31877; expires=Thu, 09 Sep 2021 15:19:53 GMT; HttpOnly; Max-Age=3600; Path=/; Secure + +[] +``` + + +### Creating a VIM account + +OSM client command + +```bash +$ osm vim-create --name openvim-site \ + --auth_url http://10.10.10.10:9080/openvim \ + --account_type openvim --description "Openvim site" \ + --tenant osm --user dummy --password dummy +59b92c04-29fa-42a7-923e-63322240b80e +``` + +HTTP request + +```http +POST /osm/admin/v1/vim_accounts HTTP/1.1 +Host: localhost +User-Agent: PycURL/7.43.0.6 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 +Accept: application/json +Content-Type: application/yaml +Authorization: Bearer TuD41hLjDvjlR2cPcAFvWcr6FGvRhIk2 +Content-Length: 196 + +{"name": "openvim-site", "vim_type": "openvim", "description": "Openvim site", "vim_url": "http://10.10.10.10:9080/openvim", "vim_user": "dummy", "vim_password": "dummy", "vim_tenant_name": "osm"} +``` + +HTTP response + +```http +HTTP/1.1 202 Accepted +Server: nginx/1.14.0 (Ubuntu) +Date: Wed, 08 Sep 2021 17:52:11 GMT +Content-Type: application/json; charset=utf-8 +Content-Length: 108 +Connection: keep-alive +Location: /osm/admin/v1/vim_accounts/59b92c04-29fa-42a7-923e-63322240b80e +Set-Cookie: session_id=4cd3ace1f2635ca888bbbb6d24a5905540345809; expires=Wed, 08 Sep 2021 18:52:11 GMT; HttpOnly; Max-Age=3600; Path=/; Secure + +{ + "id": "59b92c04-29fa-42a7-923e-63322240b80e", + "op_id": "59b92c04-29fa-42a7-923e-63322240b80e:0" +} +``` + +Notice VIM account names have to be unique. In fact, OSM NBI enforces that. +If you try creating another VIM account with the same name, you get an error: + +```bash +$ curl localhost/osm/admin/v1/vim_accounts \ + -v -X POST \ + -H 'Authorization: Bearer TuD41hLjDvjlR2cPcAFvWcr6FGvRhIk2' \ + -H 'Content-Type: application/yaml' \ + -d'{"name": "openvim-site", "vim_type": "openvim", "description": "Openvim site", "vim_url": "http://10.10.10.10:9080/openvim", "vim_user": "dummy", "vim_password": "dummy", "vim_tenant_name": "osm"}' + +... +HTTP/1.1 409 Conflict +... +--- +code: CONFLICT +detail: name 'openvim-site' already exists for vim_accounts +status: 409 +``` + + +### KNF service onboarding and instantiation + +Example flow from OSM manual section: 5.6.5.1 KNF Helm Chart + +- https://osm.etsi.org/docs/user-guide/05-osm-usage.html#knf-helm-chart + +**NB**. Download package tarballs from: + +- https://osm-download.etsi.org/ftp/Packages/examples/ + +the repo in section 5.6.5.1 is outdated. + + +#### Onboarding + +OSM client command to upload a package with a VNFD for an Open LDAP KNF: + +```bash +$ osm nfpkg-create openldap_knf.tar.gz +``` + +HTTP request + +```http +POST /osm/vnfpkgm/v1/vnf_packages_content HTTP/1.1 +Host: localhost +User-Agent: PycURL/7.43.0.6 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 +Accept: application/json +Content-Type: application/gzip +Authorization: Bearer nOcHehp8wJcxSze8lJFzEKUBTI9iOdgk +Content-Filename: openldap_knf.tar.gz +Content-File-MD5: 6f10bac4462725413f4e14f185619ead +Content-Length: 449 + +......._..openldap_knf.tar... +``` + +HTTP response + +```http +HTTP/1.1 201 Created +Server: nginx/1.14.0 (Ubuntu) +Date: Fri, 10 Sep 2021 10:07:25 GMT +Content-Type: application/json; charset=utf-8 +Content-Length: 53 +Connection: keep-alive +Location: /osm/vnfpkgm/v1/vnf_packages_content/d506d18f-0738-42ab-8b45-cfa98da38e7a +Set-Cookie: session_id=78799fcfb8463bfb1da410066fefa6c89e9ed1ec; expires=Fri, 10 Sep 2021 11:07:24 GMT; HttpOnly; Max-Age=3600; Path=/; Secure + +{ + "id": "d506d18f-0738-42ab-8b45-cfa98da38e7a" +} +``` + +Notice OSM NBI enforces uniqueness of VNFD IDs. If you try uploading another +package with a VNFD having the same ID as the one we've just uploaded, OSM +NBI will complain loudly: + +```http +HTTP/1.1 409 Conflict +... +{ + "code": "CONFLICT", + "status": 409, + "detail": "vnfd with id 'openldap_knf' already exists for this project" +} +``` + +OSM client command to upload a package with a NSD for the Open LDAP KNF +defined by the previous package: + +```bash +$ osm nspkg-create openldap_ns.tar.gz +``` + +HTTP request + +```http +POST /osm/nsd/v1/ns_descriptors_content HTTP/1.1 +Host: localhost +User-Agent: PycURL/7.43.0.6 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 +Accept: application/json +Content-Type: application/gzip +Authorization: Bearer G3zXf7lFs91YmewaUQnU5yLc0hOMUyBD +Content-Filename: openldap_ns.tar.gz +Content-File-MD5: 38f617220c88c1c32a8c9be55d781041 +Content-Length: 977 + +......._..openldap_ns.tar.. +``` + +HTTP response + +```http +HTTP/1.1 201 Created +Server: nginx/1.14.0 (Ubuntu) +Date: Fri, 10 Sep 2021 10:10:37 GMT +Content-Type: application/json; charset=utf-8 +Content-Length: 53 +Connection: keep-alive +Location: /osm/nsd/v1/ns_descriptors_content/aba58e40-d65f-4f4e-be0a-e248c14d3e03 +Set-Cookie: session_id=e9ee44a81f693d768ffe4b7265ab8cfbcef078c0; expires=Fri, 10 Sep 2021 11:10:35 GMT; HttpOnly; Max-Age=3600; Path=/; Secure + +{ + "id": "aba58e40-d65f-4f4e-be0a-e248c14d3e03" +} +``` + +Notice OSM NBI enforces uniqueness of NSD IDs. If you try uploading another +package with a NSD having the same ID as the one we've just uploaded, OSM +NBI will complain loudly: + +```http +HTTP/1.1 409 Conflict +... +{ + "code": "CONFLICT", + "status": 409, + "detail": "nsd with id 'openldap_ns' already exists for this project" +} +``` + +#### NS instantiation + +OSM client command to create an NS instance using the OpenLDAP chart uploaded +by the previous commands. Notice we use the VIM account name and OSM client +looks up the corresponding ID for us. Notice the name-ID lookup works because +OSM NBI enforces VIM name uniqueness---see earlier note about it. + +```bash +$ osm ns-create --ns_name ldap --nsd_name openldap_ns --vim_account mylocation1 +0335c32c-d28c-4d79-9b94-0ffa36326932 +``` + +[HTTP message flow](./message-flow.ns-create.md) + +OSM client command to create a second NS instance from the same chart but +this time with two replicas. Notice we use the VIM account ID this time and +OSM will use that ID as is. (**Question**: what's the algo to determine if +a string is a name or an ID?! Possibly another sore point here...) + +```bash +$ osm ns-create --ns_name ldap2 --nsd_name openldap_ns \ + --vim_account 4a4425f7-3e72-4d45-a4ec-4241186f3547 \ + --config '{additionalParamsForVnf: [{"member-vnf-index": "openldap", additionalParamsForKdu: [{ kdu_name: "ldap", "additionalParams": {"replicaCount": "2"}}]}]}' +136fcc46-c363-4d74-af14-c115fff7d80a +``` + +[HTTP message flow](./message-flow.ns-create2.md) + +Notice OSM NBI doesn't enforce uniqueness of NS names. In fact, it lets you +happily duplicate e.g. the `ldap` name we created earlier: + +```bash +$ curl localhost/osm/nslcm/v1/ns_instances_content \ + -v -X POST \ + -H 'Authorization: Bearer 0WhgBufy1Wt82NbF9OsmftwpRfcsV4sU' \ + -H 'Content-Type: application/yaml' \ + -d'{"nsdId": "aba58e40-d65f-4f4e-be0a-e248c14d3e03", "nsName": "ldap", "nsDescription": "default description", "vimAccountId": "4a4425f7-3e72-4d45-a4ec-4241186f3547"}' +... +HTTP/1.1 201 Created +... +--- +id: 794ef9a2-8bbb-42c1-869a-bab6422982ec +nslcmop_id: 0fdfaa6a-b742-480c-9701-122b3f732e4f +``` + +#### NS upgrade + +OSM client command to upgrade the first LDAP NS we created earlier. Notice +OSM client looks up the instance ID from the name we specify in the command +line (`ldap`), but this is **not** a good idea since, as noted earlier, +NS instance names aren't unique. To avoid wreaking havoc we should always +use NS instance IDs but I don't think OSM client actually supports that? + +```bash +$ osm ns-action ldap --vnf_name openldap --kdu_name ldap --action_name upgrade --params '{kdu_model: "stable/openldap:1.2.2"}' +5c6e4a0d-6238-4aa8-9147-e4e738bf16f4 +``` + +[HTTP message flow](./message-flow.ns-action.upgrade.md) + +This upgrade op eventually failed---OSM client always returns 0 since the +actual op gets executed server-side asynchronously. In fact, here's the +instance history after the op completed server-side: + +``` + ID action start end status +------------------------------------ ----------- -------------------- -------------------- ------ +0c5464da-df42-498e-b306-76d470b76a0d instantiate Sep-10-2021 14:40:26 Sep-10-2021 14:41:53 OK +5c6e4a0d-6238-4aa8-9147-e4e738bf16f4 action Sep-10-2021 16:53:57 Sep-10-2021 16:54:27 Failed +``` + +The error: + +``` +FAILED Executing kdu upgrade: Error executing command: +/usr/local/bin/helm3 upgrade stable-openldap-1-2-3-0098084071 stable/openldap --namespace fada443a-905c-4241-8a33-4dcdbdac55e7 --atomic --output yaml --timeout 1800s --version 1.2.2 + +Output: Error: UPGRADE FAILED: an error occurred while rolling back the release. +original upgrade error: +cannot patch "stable-openldap-1-2-3-0098084071" with kind Service: Service "stable-openldap-1-2-3-0098084071" is invalid: spec.clusterIP: Invalid value: "": field is immutable +``` + +OSM client command to up the number of replicas of the second LDAP NS we +created earlier. Notice this is slightly different than the example in the +OSM manual since I got rid of the `kdu_model` param that doesn't work as you +can see from the outcome of running the previous upgrade action. + +```bash +$ osm ns-action ldap2 --vnf_name openldap --kdu_name ldap --action_name upgrade --params '{"replicaCount": "3"}' +f92f746f-c10a-448e-84e1-3acfd8b684cb +``` + +[HTTP message flow](./message-flow.ns-action.upgrade2.md) + +But in the end this upgrade action didn't work either. Exactly the same error +as before got recorded in the NS instance action history. diff --git a/_tmp/osm-mitm/nfpkg-create.pcap b/_tmp/osm-mitm/nfpkg-create.pcap new file mode 100644 index 0000000000000000000000000000000000000000..874e419c1dba04bca4c022df767fca6d49839a54 GIT binary patch literal 4405 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 literal 0 HcmV?d00001 diff --git a/_tmp/osm-mitm/ns-action.upgrade2.pcap b/_tmp/osm-mitm/ns-action.upgrade2.pcap new file mode 100644 index 0000000000000000000000000000000000000000..0bb369d72fbd3ca5fc0722083ee9387fa401f465 GIT binary patch literal 34101 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 h(Thh>Mkj=rFzOL11U%{x0{|hlFgGB%U literal 0 HcmV?d00001 diff --git a/_tmp/osm-mitm/ns-create2.pcap b/_tmp/osm-mitm/ns-create2.pcap new file mode 100644 index 0000000000000000000000000000000000000000..2ed2311a1456f515a0125e1a5548d2e0e795cb91 GIT binary patch literal 13338 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 openldap_knf/checksums.txt +$ rm openldap_knf.tar.gz +$ tar -czvf openldap_knf.tar.gz openldap_knf +``` + + + + +[msg-flows]: ../osm-mitm/message-flows.md \ No newline at end of file diff --git a/_tmp/osm-pkgs/openldap_knf.tar.gz b/_tmp/osm-pkgs/openldap_knf.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..ab5cd679da7b01dd18a87dcbe69d1dfbdb5479fe GIT binary patch literal 534 zcmV+x0_pu9iwFRP-cexy1MQYgZ`&{ohI7uZ;H@XS`c`USw_zAiVAx?h51K_aM*Ia^ z&a!_$IZl(hKob;Ax)$|wkswhNW$G1O)mY}%)W24xyPjPJLWq_Uwyhdk!o<+-0Lrz} zRBAyK5Gp9=GmsaGXGGU}(}Yk=X&W?8+XXY{j`-P~W8c0Ls)zaiZZ==hSZuEM!|T%7 z_^&DQ7wi$fhZ5pQ{<(sXawfRsnn)llTm&|Q&DlHY@LPgxk+Qq3io#V2ODVrAyOza8(2MR|eMDv|%yOn8mtx=z6yiWHt%To#}EP zSr>+IM+j3N}%RewYoNFxlHaysq<+b+TO^EZd=X@I92dfGzBKmJK5SD&XYjM@$Ve>GDz;vvW+mUN1@hDWxLczgS$s@g~@dm>SzK#Fh^IF zS!%-Y?i(d=MPqXHCSKPk>VLY#bk%l68~cra=^oFh|4R4&e~c(br~3aIJgWba3Krii z7`u@~@i%cpCoaiI|7TVGfm8aYgpKu2l@e^K|F3~2LO3N-s;ofA5z%S4P-O{Jj# YC;kwpH)3L9V&Yx$4?bne1^^ZS0F%lHQ2+n{ literal 0 HcmV?d00001 diff --git a/_tmp/osm-pkgs/openldap_knf/checksums.txt b/_tmp/osm-pkgs/openldap_knf/checksums.txt new file mode 100644 index 0000000..8c84c61 --- /dev/null +++ b/_tmp/osm-pkgs/openldap_knf/checksums.txt @@ -0,0 +1 @@ +7044f64c16d4ef3eeef7f8668a4dc5a1 openldap_knf/openldap_vnfd.yaml diff --git a/_tmp/osm-pkgs/openldap_knf/openldap_vnfd.yaml b/_tmp/osm-pkgs/openldap_knf/openldap_vnfd.yaml new file mode 100644 index 0000000..41795bf --- /dev/null +++ b/_tmp/osm-pkgs/openldap_knf/openldap_vnfd.yaml @@ -0,0 +1,18 @@ +vnfd: + description: KNF with single KDU using a helm-chart for openldap version 1.2.7 + df: + - id: default-df + ext-cpd: + - id: mgmt-ext + k8s-cluster-net: mgmtnet + id: openldap_knf + k8s-cluster: + nets: + - id: mgmtnet + kdu: + - name: ldap + helm-chart: stable/openldap:1.2.7 + mgmt-cp: mgmt-ext + product-name: openldap_knf + provider: Telefonica + version: '1.0' diff --git a/_tmp/osm-pkgs/openldap_ns.tar.gz b/_tmp/osm-pkgs/openldap_ns.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..0cbac7914dd357c53bfa2d6dbab011218a72c088 GIT binary patch literal 977 zcmV;?11|g@iwFn^-`rmU|8H<*Zfs;>a9?h7E_7jX0PR;xZ{s!)_H_;9KMb4&(iW8> z`5`q%u|N=eu|d{$u*v4q77is+Herb}NGgw}`R^UdlGjes^wJnzfZv7EaAr6!%#it# ziIkG%RH(zo8^J?_Vb837*z-2m8V$b_2BF^zyFSwWZae5Spx4*|3Z;nzXcSQ)bnyz` zzwFnJ)a!SGd?WuG-_*S)S^6L5KM1=2lz$(Kqt1U2cvvTX7_`F%csBoU4or2w2~aH# zP^MzZmzw9I5914nbD_A>T+AR(fPliUl)>5fBdp71AriwUSgaWZokKRuGzg||bGbmR zV6^g?V6qRBi_wab^vl%&PW!l@kRsI%O-drbjYyoO%oConennbw)`wO^U~&ICee{j?dxb)A5(fz2;tXP|bo|D$sMHfn(1jX{vyTbsMO=4)|`{^&y@UX&7-- zoc*F8PBFer8f}+zCK+%AxnOXG^W%qF#qU#WF+ajB*K^!V?@Nxe!B_X07!IV;kgCrc zvsSur=#Z_kV?_7&VIrcONNUCx5p?B%(43h0W>~JTud(0H_nNuNKqSk>%!wr4Ot}L@N7!rIL9i3U$0I_)8mtq$=C7a zbbLG-e)wyPbUOHe5=zad3wE#I{lllpX!v;OBIS_NsZ_*W7E$TlDh~T_y6HI{T?gPI zM@yDOqCuD^Ojur|6e2@Y3a2?OqzRsh^H%W6-24QREmIzo6Js{s7m6%m(p(fK=o^&P zRB==lbj#D!XkP_~K2O08;)cbO@EIID5K6i6g{0>u0P15duSC*^-yT{SGoCo+8o~u- zcdb6O>T_E^L+hz1?mx6PgJA^Pt;fed9uL-e_`mo6c+TR5Dl#nPJH5O9@A*OS{$i~Jsm!{FVk55#8dx7(rbkvQ_Yo#^N&Vr}mz zVF^7V_|<8@d+~l@uZ04M+eA3o{_ literal 0 HcmV?d00001 diff --git a/_tmp/osm-pkgs/openldap_ns/README.md b/_tmp/osm-pkgs/openldap_ns/README.md new file mode 100644 index 0000000..8424611 --- /dev/null +++ b/_tmp/osm-pkgs/openldap_ns/README.md @@ -0,0 +1,26 @@ +# SIMPLE OPEN-LDAP CHART + +Descriptors that installs an openldap version 1.2.1 chart in a K8s cluster + +There is one VNF (openldap\_vnf) with only one KDU. + +There is one NS that connects the VNF to a mgmt network + +## Onboarding and instantiation + +```bash +osm nfpkg-create openldap_knf.tar.gz +osm nspkg-create openldap_ns.tar.gz +osm ns-create --ns_name ldap --nsd_name openldap_ns --vim_account | --ssh_keys ${HOME}/.ssh/id_rsa.pub +``` + +### Instantiation option + +Some parameters could be passed during the instantiation. + +* replicaCount: Number of Open LDAP replicas that will be created + +```bash +osm ns-create --ns_name ldap --nsd_name openldap_ns --vim_account | --config '{additionalParamsForVnf: [{"member-vnf-index": "openldap", "additionalParams": {"replicaCount": "2"}}]}' +``` + diff --git a/_tmp/osm-pkgs/openldap_ns/checksums.txt b/_tmp/osm-pkgs/openldap_ns/checksums.txt new file mode 100644 index 0000000..f07358d --- /dev/null +++ b/_tmp/osm-pkgs/openldap_ns/checksums.txt @@ -0,0 +1,2 @@ +6cbc0db17616eff57c60efa0eb15ac76 openldap_ns/openldap_nsd.yaml +c122710acb043b99be209fefd9ae2032 openldap_ns/README.md diff --git a/_tmp/osm-pkgs/openldap_ns/openldap_nsd.yaml b/_tmp/osm-pkgs/openldap_ns/openldap_nsd.yaml new file mode 100644 index 0000000..b995164 --- /dev/null +++ b/_tmp/osm-pkgs/openldap_ns/openldap_nsd.yaml @@ -0,0 +1,22 @@ +nsd: + nsd: + - description: NS consisting of a single KNF openldap_knf connected to mgmt network + designer: OSM + df: + - id: default-df + vnf-profile: + - id: openldap + virtual-link-connectivity: + - constituent-cpd-id: + - constituent-base-element-id: openldap + constituent-cpd-id: mgmt-ext + virtual-link-profile-id: mgmtnet + vnfd-id: openldap_knf + id: openldap_ns + name: openldap_ns + version: '1.0' + virtual-link-desc: + - id: mgmtnet + mgmt-network: 'true' + vnfd-id: + - openldap_knf diff --git a/_tmp/osmops-packaging/failed-attempt-to-use-targz.md b/_tmp/osmops-packaging/failed-attempt-to-use-targz.md new file mode 100644 index 0000000..4f8e2e2 --- /dev/null +++ b/_tmp/osmops-packaging/failed-attempt-to-use-targz.md @@ -0,0 +1,1164 @@ +mactel:source-watcher andrea$ nix-shell +copying path '/nix/store/g3kd1m6ilslxwca72j1yh0r1hg7r8gn8-source' from 'https://cache.nixos.org'... +this derivation will be built: + /nix/store/yw6ndp40vvpa5784j8j804sirkpybm56-kubebuilder-3.1.0.drv +these 182 paths will be fetched (353.44 MiB download, 1657.17 MiB unpacked): + /nix/store/00ngdc8ay9srb7ckm99kx6ims2siwqgq-apple-framework-CFNetwork + /nix/store/00vcq1i9x1dwwn21dqkagybcxa1lcnwi-xz-5.2.5-bin + /nix/store/0idd3d3y4vbiilwzhjq1my4npac6bp3r-libxml2-2.9.12 + /nix/store/0yrrpxkc6l1kvdf491qa1m7scamsmqb7-libcxxabi-7.1.0 + /nix/store/156rmc1d7m0w0awhdn8jky03i1nyf7rh-perl5.34.0-Test-Needs-0.002006 + /nix/store/1ahb54by7x5h7yn8703nq25fiwdzg4ix-nghttp2-1.43.0-lib + /nix/store/1h653vqxkd69ylzgxbdrj4sx7idki7g5-apple-framework-CoreVideo + /nix/store/1xjwb0bd02n1y621mjqani68kh6n6gig-perl-5.34.0 + /nix/store/2cn4lldfz1w5wddxc00za2igd7v82n0f-go-outline-unstable-2018-11-22 + /nix/store/2fzds9cqx148i1lf84sc9i0982bv9rbx-findutils-4.8.0 + /nix/store/2m4j2za4hmj83f0677yiznff129vdf3k-apple-framework-DiskArbitration + /nix/store/2qnpghhvim4yv0cb0ds5swcll09k841m-apple-framework-CoreGraphics + /nix/store/34apg7fbp8c6ppkfh5bzp0nbpacj2h27-bash-interactive-5.1-p12 + /nix/store/3iz44xrsq7niprab0majz08hjm6djiv7-indent-2.2.12 + /nix/store/3n9fvf4ybdwizym6cwnjf6f57p7mvrab-gzip-1.10 + /nix/store/3viavkq7bpd0phpy5aa0lqblhi63z2w0-gotests-1.5.3 + /nix/store/3wzawr2vj64y2l47nak2vvwckzci8d64-apple-framework-Metal + /nix/store/3yq0m0kprzf172ljfwdl6sidvf6v6j9i-stdenv-darwin + /nix/store/3yrzfhqvq41nh8fi8mjm77hwhaqprzff-apple-framework-QuartzCore + /nix/store/3zynnka2fj57s030kdvp5121cb5mrsvf-apple-framework-CoreMIDI + /nix/store/4ij9w5ck9m2ijpqpfjz46cnsa01nlibl-perl5.34.0-Try-Tiny-0.30 + /nix/store/4j3q5kmmdwkgppn6g8hna8wg6a4zrvxd-cctools-binutils-darwin-wrapper-949.0.1 + /nix/store/4npah0kdy1jgqsbb4sw2vpbv9l2zsh18-Libsystem-1238.60.2 + /nix/store/4xp86qi542rlddjxndff141l4cyqw9ri-libxml2-2.9.12 + /nix/store/55nwvpwcx5hvp9ky2yf3n38xfj171idl-compiler-rt-libc-7.1.0 + /nix/store/5cv4vf1jybf00q4n82ys54pml0gvhr7d-lzo-2.10 + /nix/store/5f1qxwxxp9mag9r91mdfs3w1x3y99kxm-bzip2-1.0.6.0.2 + /nix/store/5hpyrir2f419dch43nlkz0mjzznnyw1j-apple-framework-IOKit + /nix/store/5kkpswp4zyzwwfwhccaszvrrfwifxg6r-perl5.34.0-IO-HTML-1.004 + /nix/store/5m4flh5gnzd939x16p9m063i1im9is5w-gopls-0.7.0 + /nix/store/5mkv08mg9kk2gx12j0abfp5x348yf691-perl5.34.0-CGI-Fast-2.15 + /nix/store/5vw0211970xi853z6l9a42s0kdbzv3b0-libkrb5-1.18 + /nix/store/5zwjd1qglpnipr0f2j5lf8lngp5244b0-Toolchains + /nix/store/627zfcplv9dd15i19hnbjjwi18yqp3a5-nix.xcconfig + /nix/store/645ys9v8wd3grfvln7mgvnc8854yhdrl-apple-framework-Accelerate + /nix/store/68yn2imvrrw86mbiwkk195n16fmm2f7f-apple-framework-CoreImage + /nix/store/6biazmfb7jq7y0zxqf4r6b3nxx24n8f9-cctools-port-949.0.1 + /nix/store/6i6c9gz5d79b97gnr0a12yn3d49dyrqy-apple-framework-AppKit + /nix/store/6icby0hr0lp7gswwqq207b8lvvjxi9wq-perl5.34.0-Test-Fatal-0.016 + /nix/store/6krkglhc5la6a9gjryibzqpiiwkx03nd-Platforms + /nix/store/6wf3aa69wzi83lxz1gy41y90fiypz767-perl5.34.0-FCGI-0.79 + /nix/store/6y7x4wlzbhf5m0lzacykmgnz4ln6dmgy-openvpn-2.5.2 + /nix/store/715y5lnw12vdcc3hh9sc9vbkdi6c83x6-bash-4.4-p23 + /nix/store/7a27b4f7c3sqbjc1vg0fjnplkqd2b27d-expat-2.4.1 + /nix/store/7i321ai77n1y10vdvb7rsnk1ng8vp11b-ed-1.17 + /nix/store/7xp1yxk8d67ik4rfcbxxjrfv6fnch0p5-iana-etc-20210225 + /nix/store/7zjv0kdb724q9lpjgx9k5wk58dg1h47v-apple-framework-ApplicationServices + /nix/store/87y9iidffga2j5grsdvvwfj76l6xr6lb-apple-framework-CoreBluetooth + /nix/store/8a8c4ahdnnp3p8nf1r4q2g881yz0cp7v-perl5.34.0-CGI-4.51 + /nix/store/8hj3symc74118i5lx2mk5ckawpy5yhzg-kubectl-1.21.3 + /nix/store/8jv49b53ybn6fnwhd0dm2vk42w9zzpcv-expand-response-params + /nix/store/9wy7j2x17zbg471ag8n8wnvakf2dga4k-perl5.34.0-Net-HTTP-6.19 + /nix/store/a2y06jcg1jsghnrakw4qr27vlm1cdzym-apple-framework-OpenCL + /nix/store/a74jwf4lgca5d05klna9slxydgdsngk9-tzdata-2021a + /nix/store/aa3xbipcdryaf3mn9ic5y1smzlxngvfz-clang-7.1.0-lib + /nix/store/ad19ya4siaxhz63w0m8xh97067iahks0-python3-3.9.6 + /nix/store/adigdkh0pibb4afqf5q2sv3503ln0iyb-diffutils-3.7 + /nix/store/aqrq990va9j1v6gvrgxksr5av9vpcxz3-gnumake-4.3 + /nix/store/b16jnrlaclssglx8zszp4dwp0i893y5w-apple-framework-CoreWLAN + /nix/store/b2wj786d4qizfamzwhc6qfsb1yaaqsm5-curl-7.76.1 + /nix/store/b73lrrsjx4bvp8qh7jairv55syvagkwd-perl5.34.0-HTML-Tagset-3.20 + /nix/store/baa2clyal7jbzjfcaj62sjzjpm407ixh-perl5.34.0-WWW-RobotRules-6.02 + /nix/store/bisagmfn1vpfswv1r1vpa1d8hh90scsz-apple-framework-IOBluetooth + /nix/store/bk8h2xqxsxrvbdf96cgdr5xvw2yafp8j-nghttp2-1.43.0-lib + /nix/store/bmxvqnmx5afyvhk3iciapgfd71yxdzp7-libfido2-1.7.0 + /nix/store/bx78qsqny0bfaf6s6idjmjx83j470n3r-apple-framework-CoreFoundation + /nix/store/bzkf6rs464xs44xqkcrkb0czidb122jg-apple-framework-IOSurface + /nix/store/c072idq716ibax9jv8rhyb64rhnxzmfj-apple-framework-OpenGL + /nix/store/c8wnza9p6j649x3j4w4rgkzcy43p2f8m-gperf-3.1 + /nix/store/chpxcjxdq0cyxcs5dc2zkkaxivwih0jj-apple-framework-CoreData + /nix/store/ckbmjdmsa2gx240sz4vr9z8hivn9gp5x-Security-55471.14.18 + /nix/store/cklqcidnwvvmp6h9gpdbnldmkak0mz4h-perl5.34.0-HTML-TagCloud-0.38 + /nix/store/clgjx9nnbgcb5zgndhn45b2kas7d3ily-perl5.34.0-HTTP-Date-6.05 + /nix/store/cqadarnj29fpv1vm8bzbh6dpb8aaxzjz-patch-2.7.6 + /nix/store/crjmgrws5w2pjhm5k887m93rrkcf36hb-coreutils-8.32 + /nix/store/crz75rnr1xsp57snim91irbrgi2kxi5d-apple-framework-SystemConfiguration + /nix/store/cy3jlnw70j7w7rwjdz7r7b3kg4hcfcmf-SDKs + /nix/store/cz81sbpnda675pfq7gfnsdr9k8llgfw4-hidapi-0.10.1 + /nix/store/d051nmxsz58mjirkwg5x8jlbd50gy1ld-xcodebuild-0.1.2-pre + /nix/store/d8b3d560b7jyszsz0j4bx7qpxmagnfij-unifdef-2.12 + /nix/store/dh67n9z3mhlmmcj4nyk7pm9nhcas9s8y-apple-framework-CoreServices + /nix/store/dil64k4f2ff0an9p57rvhpxyw5vl1qxk-bash-interactive-5.1-p12-man + /nix/store/djk25cq1wr1vs7qbybzak4a6alhrsd8x-configd-453.19 + /nix/store/dlh18gcgvy32811cnirjmadpn9x6lahg-perl5.34.0-Encode-Locale-1.05 + /nix/store/dmlj5yb048cs7njcrc52hnzk294vd2bd-xcbuild-0.1.2-pre + /nix/store/dw0qfmxss8if5ks8qr0rk2sb8wnng3dw-libtapi-1100.0.11 + /nix/store/f2qq98ksl340z3ncwcwx6fcjp4mc6iyy-brotli-1.0.9-lib + /nix/store/falx4gakl6k1q64aqr4f8mvy8vfqcqaq-cctools-binutils-darwin-949.0.1 + /nix/store/fbhp0ph0366r5614xlincnvx6qj7rlsi-llvm-7.1.0-lib + /nix/store/fci25bpkavmg481ws49qdjvv9k4vmm6y-ncurses-6.2 + /nix/store/fpybf6mdl194p6sbnh3hq2zfm4wp7rxk-ctags-816 + /nix/store/fsz5rxl37pamwhqkmp9w4jryfc4pfky3-libcxx-7.1.0 + /nix/store/fx1yy6wzxm2w6b6xv177ryraa7vzjqa1-brotli-1.0.9-lib + /nix/store/g63nbvmh88c0l1kz3zq5x48dam13jdcs-go-1.16.6 + /nix/store/ggr82sipdfkxszl9qnbd0zg0hlqr7b1c-libssh2-1.9.0 + /nix/store/gswa3ywvzhm145g8jjhaihsa8qyjmc06-apple-framework-Foundation + /nix/store/h1cjrnwdmvmrh2mspkrr0agv0qn257dj-perl5.34.0-File-Listing-6.14 + /nix/store/hdrwrac2r06nmcifk2asg2j7hinb5qpb-gettext-0.21 + /nix/store/hnsbw22x8djbq0p70m2llq4qb3gbwmmi-ncurses-6.3 + /nix/store/hpgwq0an0vrjdqvlgj8szcqsyn4m0mg4-readline-8.1p0 + /nix/store/hvqn0g8wf6pxqpgcz1sdnwyyz5dcg1z0-kind-0.11.1 + /nix/store/hww71ca6bzlzyq1x6sbdvwdb8x09v2np-gopkgs-2.1.2 + /nix/store/i6rzv6vw3zx060w6r4spbvlgpdjgg2k4-apple-framework-ServiceManagement + /nix/store/ig8x9si4x7kwxv2qimvdwk2wpafv21gp-gettext-0.21 + /nix/store/ihlm88458pygspjfd44rzfl304rg362s-git-2.32.0 + /nix/store/j998frnsa1hxkfbysq0bkw6hjfrd928v-bzip2-1.0.6.0.2-bin + /nix/store/jggqvhq5db9c0q635i8r8qvlc30g72sv-libcbor-0.8.0 + /nix/store/jiwzfi73h9zadmnb6qgjlwjisan3sznd-apple-framework-AudioUnit + /nix/store/jrbfjc704hxs70q3ljjpyl0f4j7a57k9-apple-framework-Carbon + /nix/store/jx31ah14p6pf488i7wwd88y2izmxi0wj-clang-wrapper-7.1.0 + /nix/store/k4cs7vm12d9lb59jvfzv7cps73rwmn51-fluxcd-0.16.1 + /nix/store/k5szspjyr3axcj91vzmdy0imyswyc7fa-git-2.32.0-doc + /nix/store/kdnlp3kz0x7wbagn960i3rw657ws27hq-apple-framework-CoreText + /nix/store/kmmqfcwps62k79yb5rljgkydff5mkgfp-perl5.34.0-HTTP-Daemon-6.01 + /nix/store/l2mvac03b398x7jnhbqdf9051k4rsini-source + /nix/store/lpzfxmhf3z77qgpcxc3zfrbb2czzgx4q-apple-framework-NetFS + /nix/store/lr3fvwhvd8zpmjbibd3h02qdx85mxrv4-gnugrep-3.6 + /nix/store/lv7ycndyrcd0n8pn4v85wfjc62c8qbbv-bootstrap_cmds-121 + /nix/store/lw8gcf5givnwpflpgfkmayfq6by40wfr-compiler-rt-libc-7.1.0-dev + /nix/store/m8jmp0ffs11r0bigxd107v4j58r1amss-libssh2-1.9.0 + /nix/store/mbm45kwp1vqwnk52cp0w9dy4f0qsxljb-perl5.34.0-HTTP-Message-6.26 + /nix/store/mg2ar6f1r2nssalsss32lyqifwlhhmzb-pcre-8.44 + /nix/store/mjlkzmwrih5bz2hzi9yzm5ngridf0n53-pcre2-10.36 + /nix/store/mkr49brmqqad1yjac4lgffl1rjk0bf6m-readline-6.3p08 + /nix/store/mq766n41v9djm2rf74dpg4hd7n5mbwwh-xz-5.2.5 + /nix/store/mrdsjbp54ys55dmav5501k59jqk5vy2b-libkrb5-1.18 + /nix/store/mrvcsb49ak8fhf40jpc1r11vkbvqkind-bash-interactive-5.1-p12-info + /nix/store/mwhc7d6g1zzrvjvqwkf988gbf5q03lrf-perl5.34.0-FCGI-ProcManager-0.28 + /nix/store/mzzra6k9pi86yasa7x7ql4rc2mdfapi1-apple-framework-OpenDirectory + /nix/store/n4g6bc1gs1jjhx1hzznqh3950ix60v5i-objc4-709.1 + /nix/store/ncyf8lxiaj4j3d1c3fwxkghy2vjwbshl-apple-framework-UIFoundation + /nix/store/niqwc81ynr8csa9rdz9l0zg2qcjhzspb-curl-7.76.1 + /nix/store/njfdj5rp1r3yc1sv9r9ffph945928nx6-perl5.34.0-HTTP-Cookies-6.09 + /nix/store/nmn13jb7mr8js8dnfpqq02xh6i5yhpsw-delve-1.7.0 + /nix/store/np1cc9lc9jn9pxbfzkgbz24c8pxbibwa-llvm-7.1.0 + /nix/store/nsikv84v16n9dgmfnmpr5fc572nhfs1y-bash-interactive-5.1-p12-dev + /nix/store/nvvdn0i838cr7cp1q7k6sglps5qh2r70-kubebuilder-3.1.0-go-modules + /nix/store/nvypxmbcfc8yxrpgsgxhbnp6s2d4a5az-libedit-20210522-3.1 + /nix/store/p04pcf2xq0w8b6awc02vmvd6p66nnsjn-gomodifytags-1.6.0 + /nix/store/p64d7siwnvf3fpscjzifgn90q859wn3w-apple-framework-CoreAudio + /nix/store/p7pw00idxa2b4ywb207d29qik09bs5h3-perl5.34.0-LWP-MediaTypes-6.04 + /nix/store/phq0s0i1vhlvs7y77gyygnyd1zm76mlh-gawk-5.1.0 + /nix/store/pzjrm7c57jqpsajpbfzrx093l7dm60v6-openssh-8.6p1 + /nix/store/q647daz7i71y30birkp6gls1r6fffwp2-perl5.34.0-Test-RequiresInternet-0.05 + /nix/store/q7wxq69v35d0bxiqrycldz00wg9kxqzd-gnutar-1.34 + /nix/store/qc7hpsj9h68fnidcbvq4g6lih3666wv7-perl5.34.0-TimeDate-2.33 + /nix/store/qgygs5g9l0zxhs8fzjjqpmmlzps1hlrd-libiconv-50 + /nix/store/qkjmhc3zlsm09rn9f4h9m410m844apbm-flex-2.6.4 + /nix/store/qmzjj3g1rbqyhi84ii8chr0g7sh8ahm0-perl5.34.0-libwww-perl-6.49 + /nix/store/qqigwc2653h1jhidd7jg9y877yw56yqd-impl-1.0.0 + /nix/store/r1m56hdkhap9pcnngp5lzmgwa4yl1x29-apple-framework-Security + /nix/store/r2w4s36nr4w9gnchz4nyzj64nyaig9cr-ICU-66108 + /nix/store/rsza0nf7wwmv0c17q0x9yhf79ycvqgm1-openssl-1.1.1k + /nix/store/s7bqhhx7pwwif7rn708gnqq0giia5v89-hook + /nix/store/sdbsgmdc9xvlngvd2m2nr2vvzyzbcmyh-perl5.34.0-HTML-Parser-3.75 + /nix/store/shp60sgvnh5is0mcd7w86gq531ws3sxn-openssl-1.1.1k + /nix/store/szcfcci0blvj5xz5snygxy3271dbzlc0-bison-3.7.6 + /nix/store/v4bzbvfhzsq0294vyxzy06c3c8b9hjg6-kustomize-4.2.0 + /nix/store/v88kadzxxwdkwmksjprhabjpdz43ic49-hook + /nix/store/va4ipz29l8a1v9gvw7x3r5pp5zwv254b-sqlite-3.35.5 + /nix/store/vbmi4ha8c014q3bri9iriggbd8hqdqss-adv_cmds-119-locale + /nix/store/vxc4vzqx02hf3795vk5d9an3xvx2ml90-gnum4-1.4.18 + /nix/store/w9vgngyar0ykvmamm6k0bf5k9yn9kbhb-swift-corefoundation + /nix/store/wia4ggzr91yglpq6z1lg48qnv5z4yy94-binutils-2.35.1 + /nix/store/wkgrylws6qa3iajc2py42m5fhyxnwkjv-gmp-6.2.1 + /nix/store/wpx3d215y08c37sc5fzlic5hkn8hhha4-apple-framework-Cocoa + /nix/store/x87bqc42xmskjwf5c2a9bbzkd8aqwrca-zlib-1.2.11 + /nix/store/x9chz553wdb3j2hpq2z5pgg43ysrq87n-perl5.34.0-HTTP-Negotiate-6.01 + /nix/store/xcn2cfrpql8panqjqhfxd4sqlzh5ja66-perl5.34.0-URI-5.05 + /nix/store/xhijdap7ln3nw867cq6m3knshww9f2rn-clang-7.1.0 + /nix/store/xz9n2vz4jpkq81x0wxjsxg986gc4pjz1-perl5.34.0-TermReadKey-2.38 + /nix/store/y70lq54ix9qc0hcahnr452z1hag6w5sq-apple-framework-ImageIO + /nix/store/y736kjvzdclbzcxdv5fc9ghb832fq0i7-libcxxabi-7.1.0-dev + /nix/store/yhc9gnqw4vm3b84xqcyfxalph5bng2cg-apple-lib-xpc + /nix/store/yjamjr77klbn539xib8vamx5sp6wcgzs-apple-framework-AudioToolbox + /nix/store/z3yld7y61yiklysjzf6k6kvfihyscxgb-apple-framework-SecurityFoundation + /nix/store/z6ih791dzyjvdqm8gl5glz065kk8zh7p-gnused-4.8 + /nix/store/z7r4pl0q7kvqjgd87zc60jj4b4djhn4h-bash-interactive-5.1-p12-doc + /nix/store/zgpnab89ggi39cvmz6nvwxsav0vfniwj-go-tools-2021.1 + /nix/store/zk81d86gikl6dm96kfylgd2yi7ji8qbm-gdbm-1.20 + /nix/store/znv06z6pld0ivwddj52rishggwc2m94c-libcxx-7.1.0-dev + /nix/store/zyh3yfv4npb5vyhqmp6hswfps0j7smyn-libffi-3.3 +copying path '/nix/store/715y5lnw12vdcc3hh9sc9vbkdi6c83x6-bash-4.4-p23' from 'https://cache.nixos.org'... +copying path '/nix/store/4npah0kdy1jgqsbb4sw2vpbv9l2zsh18-Libsystem-1238.60.2' from 'https://cache.nixos.org'... +copying path '/nix/store/cy3jlnw70j7w7rwjdz7r7b3kg4hcfcmf-SDKs' from 'https://cache.nixos.org'... +copying path '/nix/store/ckbmjdmsa2gx240sz4vr9z8hivn9gp5x-Security-55471.14.18' from 'https://cache.nixos.org'... +copying path '/nix/store/6krkglhc5la6a9gjryibzqpiiwkx03nd-Platforms' from 'https://cache.nixos.org'... +copying path '/nix/store/vbmi4ha8c014q3bri9iriggbd8hqdqss-adv_cmds-119-locale' from 'https://cache.nixos.org'... +copying path '/nix/store/00ngdc8ay9srb7ckm99kx6ims2siwqgq-apple-framework-CFNetwork' from 'https://cache.nixos.org'... +copying path '/nix/store/87y9iidffga2j5grsdvvwfj76l6xr6lb-apple-framework-CoreBluetooth' from 'https://cache.nixos.org'... +copying path '/nix/store/chpxcjxdq0cyxcs5dc2zkkaxivwih0jj-apple-framework-CoreData' from 'https://cache.nixos.org'... +copying path '/nix/store/bx78qsqny0bfaf6s6idjmjx83j470n3r-apple-framework-CoreFoundation' from 'https://cache.nixos.org'... +copying path '/nix/store/68yn2imvrrw86mbiwkk195n16fmm2f7f-apple-framework-CoreImage' from 'https://cache.nixos.org'... +copying path '/nix/store/3zynnka2fj57s030kdvp5121cb5mrsvf-apple-framework-CoreMIDI' from 'https://cache.nixos.org'... +copying path '/nix/store/5hpyrir2f419dch43nlkz0mjzznnyw1j-apple-framework-IOKit' from 'https://cache.nixos.org'... +copying path '/nix/store/3wzawr2vj64y2l47nak2vvwckzci8d64-apple-framework-Metal' from 'https://cache.nixos.org'... +copying path '/nix/store/p64d7siwnvf3fpscjzifgn90q859wn3w-apple-framework-CoreAudio' from 'https://cache.nixos.org'... +copying path '/nix/store/2m4j2za4hmj83f0677yiznff129vdf3k-apple-framework-DiskArbitration' from 'https://cache.nixos.org'... +copying path '/nix/store/yjamjr77klbn539xib8vamx5sp6wcgzs-apple-framework-AudioToolbox' from 'https://cache.nixos.org'... +copying path '/nix/store/bisagmfn1vpfswv1r1vpa1d8hh90scsz-apple-framework-IOBluetooth' from 'https://cache.nixos.org'... +copying path '/nix/store/lpzfxmhf3z77qgpcxc3zfrbb2czzgx4q-apple-framework-NetFS' from 'https://cache.nixos.org'... +copying path '/nix/store/mzzra6k9pi86yasa7x7ql4rc2mdfapi1-apple-framework-OpenDirectory' from 'https://cache.nixos.org'... +copying path '/nix/store/c072idq716ibax9jv8rhyb64rhnxzmfj-apple-framework-OpenGL' from 'https://cache.nixos.org'... +copying path '/nix/store/r1m56hdkhap9pcnngp5lzmgwa4yl1x29-apple-framework-Security' from 'https://cache.nixos.org'... +copying path '/nix/store/z3yld7y61yiklysjzf6k6kvfihyscxgb-apple-framework-SecurityFoundation' from 'https://cache.nixos.org'... +copying path '/nix/store/i6rzv6vw3zx060w6r4spbvlgpdjgg2k4-apple-framework-ServiceManagement' from 'https://cache.nixos.org'... +copying path '/nix/store/b16jnrlaclssglx8zszp4dwp0i893y5w-apple-framework-CoreWLAN' from 'https://cache.nixos.org'... +copying path '/nix/store/dh67n9z3mhlmmcj4nyk7pm9nhcas9s8y-apple-framework-CoreServices' from 'https://cache.nixos.org'... +copying path '/nix/store/645ys9v8wd3grfvln7mgvnc8854yhdrl-apple-framework-Accelerate' from 'https://cache.nixos.org'... +copying path '/nix/store/crz75rnr1xsp57snim91irbrgi2kxi5d-apple-framework-SystemConfiguration' from 'https://cache.nixos.org'... +copying path '/nix/store/ncyf8lxiaj4j3d1c3fwxkghy2vjwbshl-apple-framework-UIFoundation' from 'https://cache.nixos.org'... +copying path '/nix/store/yhc9gnqw4vm3b84xqcyfxalph5bng2cg-apple-lib-xpc' from 'https://cache.nixos.org'... +copying path '/nix/store/z7r4pl0q7kvqjgd87zc60jj4b4djhn4h-bash-interactive-5.1-p12-doc' from 'https://cache.nixos.org'... +copying path '/nix/store/bzkf6rs464xs44xqkcrkb0czidb122jg-apple-framework-IOSurface' from 'https://cache.nixos.org'... +copying path '/nix/store/mrvcsb49ak8fhf40jpc1r11vkbvqkind-bash-interactive-5.1-p12-info' from 'https://cache.nixos.org'... +copying path '/nix/store/2qnpghhvim4yv0cb0ds5swcll09k841m-apple-framework-CoreGraphics' from 'https://cache.nixos.org'... +copying path '/nix/store/a2y06jcg1jsghnrakw4qr27vlm1cdzym-apple-framework-OpenCL' from 'https://cache.nixos.org'... +copying path '/nix/store/kdnlp3kz0x7wbagn960i3rw657ws27hq-apple-framework-CoreText' from 'https://cache.nixos.org'... +copying path '/nix/store/y70lq54ix9qc0hcahnr452z1hag6w5sq-apple-framework-ImageIO' from 'https://cache.nixos.org'... +copying path '/nix/store/dil64k4f2ff0an9p57rvhpxyw5vl1qxk-bash-interactive-5.1-p12-man' from 'https://cache.nixos.org'... +copying path '/nix/store/7zjv0kdb724q9lpjgx9k5wk58dg1h47v-apple-framework-ApplicationServices' from 'https://cache.nixos.org'... +copying path '/nix/store/fx1yy6wzxm2w6b6xv177ryraa7vzjqa1-brotli-1.0.9-lib' from 'https://cache.nixos.org'... +copying path '/nix/store/1h653vqxkd69ylzgxbdrj4sx7idki7g5-apple-framework-CoreVideo' from 'https://cache.nixos.org'... +copying path '/nix/store/5f1qxwxxp9mag9r91mdfs3w1x3y99kxm-bzip2-1.0.6.0.2' from 'https://cache.nixos.org'... +copying path '/nix/store/7i321ai77n1y10vdvb7rsnk1ng8vp11b-ed-1.17' from 'https://cache.nixos.org'... +copying path '/nix/store/j998frnsa1hxkfbysq0bkw6hjfrd928v-bzip2-1.0.6.0.2-bin' from 'https://cache.nixos.org'... +copying path '/nix/store/8jv49b53ybn6fnwhd0dm2vk42w9zzpcv-expand-response-params' from 'https://cache.nixos.org'... +copying path '/nix/store/phq0s0i1vhlvs7y77gyygnyd1zm76mlh-gawk-5.1.0' from 'https://cache.nixos.org'... +copying path '/nix/store/k5szspjyr3axcj91vzmdy0imyswyc7fa-git-2.32.0-doc' from 'https://cache.nixos.org'... +copying path '/nix/store/aqrq990va9j1v6gvrgxksr5av9vpcxz3-gnumake-4.3' from 'https://cache.nixos.org'... +copying path '/nix/store/z6ih791dzyjvdqm8gl5glz065kk8zh7p-gnused-4.8' from 'https://cache.nixos.org'... +copying path '/nix/store/2cn4lldfz1w5wddxc00za2igd7v82n0f-go-outline-unstable-2018-11-22' from 'https://cache.nixos.org'... +copying path '/nix/store/p04pcf2xq0w8b6awc02vmvd6p66nnsjn-gomodifytags-1.6.0' from 'https://cache.nixos.org'... +copying path '/nix/store/hww71ca6bzlzyq1x6sbdvwdb8x09v2np-gopkgs-2.1.2' from 'https://cache.nixos.org'... +copying path '/nix/store/3n9fvf4ybdwizym6cwnjf6f57p7mvrab-gzip-1.10' from 'https://cache.nixos.org'... +copying path '/nix/store/s7bqhhx7pwwif7rn708gnqq0giia5v89-hook' from 'https://cache.nixos.org'... +copying path '/nix/store/7xp1yxk8d67ik4rfcbxxjrfv6fnch0p5-iana-etc-20210225' from 'https://cache.nixos.org'... +copying path '/nix/store/v88kadzxxwdkwmksjprhabjpdz43ic49-hook' from 'https://cache.nixos.org'... +copying path '/nix/store/nmn13jb7mr8js8dnfpqq02xh6i5yhpsw-delve-1.7.0' from 'https://cache.nixos.org'... +copying path '/nix/store/k4cs7vm12d9lb59jvfzv7cps73rwmn51-fluxcd-0.16.1' from 'https://cache.nixos.org'... +copying path '/nix/store/zgpnab89ggi39cvmz6nvwxsav0vfniwj-go-tools-2021.1' from 'https://cache.nixos.org'... +copying path '/nix/store/5m4flh5gnzd939x16p9m063i1im9is5w-gopls-0.7.0' from 'https://cache.nixos.org'... +copying path '/nix/store/3viavkq7bpd0phpy5aa0lqblhi63z2w0-gotests-1.5.3' from 'https://cache.nixos.org'... +copying path '/nix/store/qqigwc2653h1jhidd7jg9y877yw56yqd-impl-1.0.0' from 'https://cache.nixos.org'... +copying path '/nix/store/hvqn0g8wf6pxqpgcz1sdnwyyz5dcg1z0-kind-0.11.1' from 'https://cache.nixos.org'... +copying path '/nix/store/nvvdn0i838cr7cp1q7k6sglps5qh2r70-kubebuilder-3.1.0-go-modules' from 'https://cache.nixos.org'... +copying path '/nix/store/8hj3symc74118i5lx2mk5ckawpy5yhzg-kubectl-1.21.3' from 'https://cache.nixos.org'... +copying path '/nix/store/v4bzbvfhzsq0294vyxzy06c3c8b9hjg6-kustomize-4.2.0' from 'https://cache.nixos.org'... +copying path '/nix/store/0yrrpxkc6l1kvdf491qa1m7scamsmqb7-libcxxabi-7.1.0' from 'https://cache.nixos.org'... +copying path '/nix/store/zyh3yfv4npb5vyhqmp6hswfps0j7smyn-libffi-3.3' from 'https://cache.nixos.org'... +copying path '/nix/store/fsz5rxl37pamwhqkmp9w4jryfc4pfky3-libcxx-7.1.0' from 'https://cache.nixos.org'... +copying path '/nix/store/y736kjvzdclbzcxdv5fc9ghb832fq0i7-libcxxabi-7.1.0-dev' from 'https://cache.nixos.org'... +copying path '/nix/store/r2w4s36nr4w9gnchz4nyzj64nyaig9cr-ICU-66108' from 'https://cache.nixos.org'... +copying path '/nix/store/55nwvpwcx5hvp9ky2yf3n38xfj171idl-compiler-rt-libc-7.1.0' from 'https://cache.nixos.org'... +copying path '/nix/store/wkgrylws6qa3iajc2py42m5fhyxnwkjv-gmp-6.2.1' from 'https://cache.nixos.org'... +copying path '/nix/store/lw8gcf5givnwpflpgfkmayfq6by40wfr-compiler-rt-libc-7.1.0-dev' from 'https://cache.nixos.org'... +copying path '/nix/store/crjmgrws5w2pjhm5k887m93rrkcf36hb-coreutils-8.32' from 'https://cache.nixos.org'... +copying path '/nix/store/znv06z6pld0ivwddj52rishggwc2m94c-libcxx-7.1.0-dev' from 'https://cache.nixos.org'... +copying path '/nix/store/adigdkh0pibb4afqf5q2sv3503ln0iyb-diffutils-3.7' from 'https://cache.nixos.org'... +copying path '/nix/store/2fzds9cqx148i1lf84sc9i0982bv9rbx-findutils-4.8.0' from 'https://cache.nixos.org'... +copying path '/nix/store/qgygs5g9l0zxhs8fzjjqpmmlzps1hlrd-libiconv-50' from 'https://cache.nixos.org'... +copying path '/nix/store/5vw0211970xi853z6l9a42s0kdbzv3b0-libkrb5-1.18' from 'https://cache.nixos.org'... +copying path '/nix/store/ig8x9si4x7kwxv2qimvdwk2wpafv21gp-gettext-0.21' from 'https://cache.nixos.org'... +copying path '/nix/store/fci25bpkavmg481ws49qdjvv9k4vmm6y-ncurses-6.2' from 'https://cache.nixos.org'... +copying path '/nix/store/q7wxq69v35d0bxiqrycldz00wg9kxqzd-gnutar-1.34' from 'https://cache.nixos.org'... +copying path '/nix/store/dw0qfmxss8if5ks8qr0rk2sb8wnng3dw-libtapi-1100.0.11' from 'https://cache.nixos.org'... +copying path '/nix/store/hnsbw22x8djbq0p70m2llq4qb3gbwmmi-ncurses-6.3' from 'https://cache.nixos.org'... +copying path '/nix/store/6biazmfb7jq7y0zxqf4r6b3nxx24n8f9-cctools-port-949.0.1' from 'https://cache.nixos.org'... +copying path '/nix/store/bk8h2xqxsxrvbdf96cgdr5xvw2yafp8j-nghttp2-1.43.0-lib' from 'https://cache.nixos.org'... +copying path '/nix/store/627zfcplv9dd15i19hnbjjwi18yqp3a5-nix.xcconfig' from 'https://cache.nixos.org'... +copying path '/nix/store/n4g6bc1gs1jjhx1hzznqh3950ix60v5i-objc4-709.1' from 'https://cache.nixos.org'... +copying path '/nix/store/rsza0nf7wwmv0c17q0x9yhf79ycvqgm1-openssl-1.1.1k' from 'https://cache.nixos.org'... +copying path '/nix/store/gswa3ywvzhm145g8jjhaihsa8qyjmc06-apple-framework-Foundation' from 'https://cache.nixos.org'... +copying path '/nix/store/3yrzfhqvq41nh8fi8mjm77hwhaqprzff-apple-framework-QuartzCore' from 'https://cache.nixos.org'... +copying path '/nix/store/cqadarnj29fpv1vm8bzbh6dpb8aaxzjz-patch-2.7.6' from 'https://cache.nixos.org'... +copying path '/nix/store/jrbfjc704hxs70q3ljjpyl0f4j7a57k9-apple-framework-Carbon' from 'https://cache.nixos.org'... +copying path '/nix/store/mg2ar6f1r2nssalsss32lyqifwlhhmzb-pcre-8.44' from 'https://cache.nixos.org'... +copying path '/nix/store/jiwzfi73h9zadmnb6qgjlwjisan3sznd-apple-framework-AudioUnit' from 'https://cache.nixos.org'... +copying path '/nix/store/lr3fvwhvd8zpmjbibd3h02qdx85mxrv4-gnugrep-3.6' from 'https://cache.nixos.org'... +copying path '/nix/store/6i6c9gz5d79b97gnr0a12yn3d49dyrqy-apple-framework-AppKit' from 'https://cache.nixos.org'... +copying path '/nix/store/dlh18gcgvy32811cnirjmadpn9x6lahg-perl5.34.0-Encode-Locale-1.05' from 'https://cache.nixos.org'... +copying path '/nix/store/wpx3d215y08c37sc5fzlic5hkn8hhha4-apple-framework-Cocoa' from 'https://cache.nixos.org'... +copying path '/nix/store/mwhc7d6g1zzrvjvqwkf988gbf5q03lrf-perl5.34.0-FCGI-ProcManager-0.28' from 'https://cache.nixos.org'... +copying path '/nix/store/cz81sbpnda675pfq7gfnsdr9k8llgfw4-hidapi-0.10.1' from 'https://cache.nixos.org'... +copying path '/nix/store/cklqcidnwvvmp6h9gpdbnldmkak0mz4h-perl5.34.0-HTML-TagCloud-0.38' from 'https://cache.nixos.org'... +copying path '/nix/store/b73lrrsjx4bvp8qh7jairv55syvagkwd-perl5.34.0-HTML-Tagset-3.20' from 'https://cache.nixos.org'... +copying path '/nix/store/5kkpswp4zyzwwfwhccaszvrrfwifxg6r-perl5.34.0-IO-HTML-1.004' from 'https://cache.nixos.org'... +copying path '/nix/store/p7pw00idxa2b4ywb207d29qik09bs5h3-perl5.34.0-LWP-MediaTypes-6.04' from 'https://cache.nixos.org'... +copying path '/nix/store/156rmc1d7m0w0awhdn8jky03i1nyf7rh-perl5.34.0-Test-Needs-0.002006' from 'https://cache.nixos.org'... +copying path '/nix/store/q647daz7i71y30birkp6gls1r6fffwp2-perl5.34.0-Test-RequiresInternet-0.05' from 'https://cache.nixos.org'... +copying path '/nix/store/qc7hpsj9h68fnidcbvq4g6lih3666wv7-perl5.34.0-TimeDate-2.33' from 'https://cache.nixos.org'... +copying path '/nix/store/4ij9w5ck9m2ijpqpfjz46cnsa01nlibl-perl5.34.0-Try-Tiny-0.30' from 'https://cache.nixos.org'... +copying path '/nix/store/clgjx9nnbgcb5zgndhn45b2kas7d3ily-perl5.34.0-HTTP-Date-6.05' from 'https://cache.nixos.org'... +copying path '/nix/store/6icby0hr0lp7gswwqq207b8lvvjxi9wq-perl5.34.0-Test-Fatal-0.016' from 'https://cache.nixos.org'... +copying path '/nix/store/h1cjrnwdmvmrh2mspkrr0agv0qn257dj-perl5.34.0-File-Listing-6.14' from 'https://cache.nixos.org'... +copying path '/nix/store/xcn2cfrpql8panqjqhfxd4sqlzh5ja66-perl5.34.0-URI-5.05' from 'https://cache.nixos.org'... +copying path '/nix/store/hpgwq0an0vrjdqvlgj8szcqsyn4m0mg4-readline-8.1p0' from 'https://cache.nixos.org'... +copying path '/nix/store/mbm45kwp1vqwnk52cp0w9dy4f0qsxljb-perl5.34.0-HTTP-Message-6.26' from 'https://cache.nixos.org'... +copying path '/nix/store/34apg7fbp8c6ppkfh5bzp0nbpacj2h27-bash-interactive-5.1-p12' from 'https://cache.nixos.org'... +copying path '/nix/store/njfdj5rp1r3yc1sv9r9ffph945928nx6-perl5.34.0-HTTP-Cookies-6.09' from 'https://cache.nixos.org'... +copying path '/nix/store/nsikv84v16n9dgmfnmpr5fc572nhfs1y-bash-interactive-5.1-p12-dev' from 'https://cache.nixos.org'... +copying path '/nix/store/kmmqfcwps62k79yb5rljgkydff5mkgfp-perl5.34.0-HTTP-Daemon-6.01' from 'https://cache.nixos.org'... +copying path '/nix/store/x9chz553wdb3j2hpq2z5pgg43ysrq87n-perl5.34.0-HTTP-Negotiate-6.01' from 'https://cache.nixos.org'... +copying path '/nix/store/9wy7j2x17zbg471ag8n8wnvakf2dga4k-perl5.34.0-Net-HTTP-6.19' from 'https://cache.nixos.org'... +copying path '/nix/store/baa2clyal7jbzjfcaj62sjzjpm407ixh-perl5.34.0-WWW-RobotRules-6.02' from 'https://cache.nixos.org'... +copying path '/nix/store/l2mvac03b398x7jnhbqdf9051k4rsini-source' from 'https://cache.nixos.org'... +copying path '/nix/store/a74jwf4lgca5d05klna9slxydgdsngk9-tzdata-2021a' from 'https://cache.nixos.org'... +copying path '/nix/store/mq766n41v9djm2rf74dpg4hd7n5mbwwh-xz-5.2.5' from 'https://cache.nixos.org'... +copying path '/nix/store/x87bqc42xmskjwf5c2a9bbzkd8aqwrca-zlib-1.2.11' from 'https://cache.nixos.org'... +copying path '/nix/store/00vcq1i9x1dwwn21dqkagybcxa1lcnwi-xz-5.2.5-bin' from 'https://cache.nixos.org'... +copying path '/nix/store/wia4ggzr91yglpq6z1lg48qnv5z4yy94-binutils-2.35.1' from 'https://cache.nixos.org'... +copying path '/nix/store/ggr82sipdfkxszl9qnbd0zg0hlqr7b1c-libssh2-1.9.0' from 'https://cache.nixos.org'... +copying path '/nix/store/0idd3d3y4vbiilwzhjq1my4npac6bp3r-libxml2-2.9.12' from 'https://cache.nixos.org'... +copying path '/nix/store/niqwc81ynr8csa9rdz9l0zg2qcjhzspb-curl-7.76.1' from 'https://cache.nixos.org'... +copying path '/nix/store/fbhp0ph0366r5614xlincnvx6qj7rlsi-llvm-7.1.0-lib' from 'https://cache.nixos.org'... +copying path '/nix/store/w9vgngyar0ykvmamm6k0bf5k9yn9kbhb-swift-corefoundation' from 'https://cache.nixos.org'... +copying path '/nix/store/xhijdap7ln3nw867cq6m3knshww9f2rn-clang-7.1.0' from 'https://cache.nixos.org'... +copying path '/nix/store/lv7ycndyrcd0n8pn4v85wfjc62c8qbbv-bootstrap_cmds-121' from 'https://cache.nixos.org'... +copying path '/nix/store/f2qq98ksl340z3ncwcwx6fcjp4mc6iyy-brotli-1.0.9-lib' from 'https://cache.nixos.org'... +copying path '/nix/store/aa3xbipcdryaf3mn9ic5y1smzlxngvfz-clang-7.1.0-lib' from 'https://cache.nixos.org'... +copying path '/nix/store/djk25cq1wr1vs7qbybzak4a6alhrsd8x-configd-453.19' from 'https://cache.nixos.org'... +copying path '/nix/store/fpybf6mdl194p6sbnh3hq2zfm4wp7rxk-ctags-816' from 'https://cache.nixos.org'... +copying path '/nix/store/7a27b4f7c3sqbjc1vg0fjnplkqd2b27d-expat-2.4.1' from 'https://cache.nixos.org'... +copying path '/nix/store/zk81d86gikl6dm96kfylgd2yi7ji8qbm-gdbm-1.20' from 'https://cache.nixos.org'... +copying path '/nix/store/hdrwrac2r06nmcifk2asg2j7hinb5qpb-gettext-0.21' from 'https://cache.nixos.org'... +copying path '/nix/store/vxc4vzqx02hf3795vk5d9an3xvx2ml90-gnum4-1.4.18' from 'https://cache.nixos.org'... +copying path '/nix/store/c8wnza9p6j649x3j4w4rgkzcy43p2f8m-gperf-3.1' from 'https://cache.nixos.org'... +copying path '/nix/store/szcfcci0blvj5xz5snygxy3271dbzlc0-bison-3.7.6' from 'https://cache.nixos.org'... +copying path '/nix/store/qkjmhc3zlsm09rn9f4h9m410m844apbm-flex-2.6.4' from 'https://cache.nixos.org'... +copying path '/nix/store/3iz44xrsq7niprab0majz08hjm6djiv7-indent-2.2.12' from 'https://cache.nixos.org'... +copying path '/nix/store/jggqvhq5db9c0q635i8r8qvlc30g72sv-libcbor-0.8.0' from 'https://cache.nixos.org'... +copying path '/nix/store/nvypxmbcfc8yxrpgsgxhbnp6s2d4a5az-libedit-20210522-3.1' from 'https://cache.nixos.org'... +copying path '/nix/store/mrdsjbp54ys55dmav5501k59jqk5vy2b-libkrb5-1.18' from 'https://cache.nixos.org'... +copying path '/nix/store/4xp86qi542rlddjxndff141l4cyqw9ri-libxml2-2.9.12' from 'https://cache.nixos.org'... +copying path '/nix/store/np1cc9lc9jn9pxbfzkgbz24c8pxbibwa-llvm-7.1.0' from 'https://cache.nixos.org'... +copying path '/nix/store/5cv4vf1jybf00q4n82ys54pml0gvhr7d-lzo-2.10' from 'https://cache.nixos.org'... +copying path '/nix/store/falx4gakl6k1q64aqr4f8mvy8vfqcqaq-cctools-binutils-darwin-949.0.1' from 'https://cache.nixos.org'... +copying path '/nix/store/1ahb54by7x5h7yn8703nq25fiwdzg4ix-nghttp2-1.43.0-lib' from 'https://cache.nixos.org'... +copying path '/nix/store/4j3q5kmmdwkgppn6g8hna8wg6a4zrvxd-cctools-binutils-darwin-wrapper-949.0.1' from 'https://cache.nixos.org'... +copying path '/nix/store/shp60sgvnh5is0mcd7w86gq531ws3sxn-openssl-1.1.1k' from 'https://cache.nixos.org'... +copying path '/nix/store/jx31ah14p6pf488i7wwd88y2izmxi0wj-clang-wrapper-7.1.0' from 'https://cache.nixos.org'... +copying path '/nix/store/bmxvqnmx5afyvhk3iciapgfd71yxdzp7-libfido2-1.7.0' from 'https://cache.nixos.org'... +copying path '/nix/store/m8jmp0ffs11r0bigxd107v4j58r1amss-libssh2-1.9.0' from 'https://cache.nixos.org'... +copying path '/nix/store/pzjrm7c57jqpsajpbfzrx093l7dm60v6-openssh-8.6p1' from 'https://cache.nixos.org'... +copying path '/nix/store/b2wj786d4qizfamzwhc6qfsb1yaaqsm5-curl-7.76.1' from 'https://cache.nixos.org'... +copying path '/nix/store/6y7x4wlzbhf5m0lzacykmgnz4ln6dmgy-openvpn-2.5.2' from 'https://cache.nixos.org'... +copying path '/nix/store/mjlkzmwrih5bz2hzi9yzm5ngridf0n53-pcre2-10.36' from 'https://cache.nixos.org'... +copying path '/nix/store/1xjwb0bd02n1y621mjqani68kh6n6gig-perl-5.34.0' from 'https://cache.nixos.org'... +copying path '/nix/store/6wf3aa69wzi83lxz1gy41y90fiypz767-perl5.34.0-FCGI-0.79' from 'https://cache.nixos.org'... +copying path '/nix/store/sdbsgmdc9xvlngvd2m2nr2vvzyzbcmyh-perl5.34.0-HTML-Parser-3.75' from 'https://cache.nixos.org'... +copying path '/nix/store/xz9n2vz4jpkq81x0wxjsxg986gc4pjz1-perl5.34.0-TermReadKey-2.38' from 'https://cache.nixos.org'... +copying path '/nix/store/8a8c4ahdnnp3p8nf1r4q2g881yz0cp7v-perl5.34.0-CGI-4.51' from 'https://cache.nixos.org'... +copying path '/nix/store/qmzjj3g1rbqyhi84ii8chr0g7sh8ahm0-perl5.34.0-libwww-perl-6.49' from 'https://cache.nixos.org'... +copying path '/nix/store/5mkv08mg9kk2gx12j0abfp5x348yf691-perl5.34.0-CGI-Fast-2.15' from 'https://cache.nixos.org'... +copying path '/nix/store/mkr49brmqqad1yjac4lgffl1rjk0bf6m-readline-6.3p08' from 'https://cache.nixos.org'... +copying path '/nix/store/va4ipz29l8a1v9gvw7x3r5pp5zwv254b-sqlite-3.35.5' from 'https://cache.nixos.org'... +copying path '/nix/store/3yq0m0kprzf172ljfwdl6sidvf6v6j9i-stdenv-darwin' from 'https://cache.nixos.org'... +copying path '/nix/store/ad19ya4siaxhz63w0m8xh97067iahks0-python3-3.9.6' from 'https://cache.nixos.org'... +copying path '/nix/store/d8b3d560b7jyszsz0j4bx7qpxmagnfij-unifdef-2.12' from 'https://cache.nixos.org'... +copying path '/nix/store/ihlm88458pygspjfd44rzfl304rg362s-git-2.32.0' from 'https://cache.nixos.org'... +copying path '/nix/store/5zwjd1qglpnipr0f2j5lf8lngp5244b0-Toolchains' from 'https://cache.nixos.org'... +copying path '/nix/store/dmlj5yb048cs7njcrc52hnzk294vd2bd-xcbuild-0.1.2-pre' from 'https://cache.nixos.org'... +copying path '/nix/store/d051nmxsz58mjirkwg5x8jlbd50gy1ld-xcodebuild-0.1.2-pre' from 'https://cache.nixos.org'... +copying path '/nix/store/g63nbvmh88c0l1kz3zq5x48dam13jdcs-go-1.16.6' from 'https://cache.nixos.org'... +building '/nix/store/yw6ndp40vvpa5784j8j804sirkpybm56-kubebuilder-3.1.0.drv'... +unpacking sources +unpacking source archive /nix/store/l2mvac03b398x7jnhbqdf9051k4rsini-source +source root is source +patching sources +configuring +building +Building subPackage ./cmd +golang.org/x/crypto/cryptobyte/asn1 +github.com/cloudflare/cfssl/info +google.golang.org/protobuf/internal/flags +google.golang.org/protobuf/internal/set +golang.org/x/text/transform +github.com/spf13/afero/mem +golang.org/x/text/unicode/norm +github.com/spf13/pflag +github.com/cloudflare/cfssl/auth +github.com/cloudflare/cfssl/errors +golang.org/x/crypto/ed25519 +github.com/cloudflare/cfssl/log +github.com/cloudflare/cfssl/crypto/pkcs7 +github.com/cloudflare/cfssl/helpers/derhelpers +github.com/google/certificate-transparency-go/asn1 +golang.org/x/crypto/cryptobyte +golang.org/x/crypto/ocsp +golang.org/x/crypto/pkcs12/internal/rc2 +golang.org/x/crypto/pkcs12 +github.com/google/certificate-transparency-go/tls +github.com/google/certificate-transparency-go/x509/pkix +github.com/cloudflare/cfssl/ocsp/config +golang.org/x/text/unicode/bidi +github.com/spf13/afero +github.com/google/certificate-transparency-go/x509 +golang.org/x/text/secure/bidirule +golang.org/x/net/idna +github.com/weppos/publicsuffix-go/publicsuffix +github.com/zmap/zcrypto/json +github.com/spf13/cobra +github.com/zmap/zcrypto/util +github.com/zmap/zcrypto/x509/ct +github.com/zmap/zcrypto/x509/pkix +github.com/jmoiron/sqlx/types +github.com/cloudflare/cfssl/certdb +google.golang.org/protobuf/internal/detrand +google.golang.org/protobuf/internal/errors +google.golang.org/protobuf/encoding/protowire +google.golang.org/protobuf/internal/pragma +google.golang.org/protobuf/reflect/protoreflect +google.golang.org/protobuf/reflect/protoregistry +google.golang.org/protobuf/internal/strs +google.golang.org/protobuf/internal/encoding/text +google.golang.org/protobuf/internal/encoding/messageset +google.golang.org/protobuf/internal/genid +google.golang.org/protobuf/internal/mapsort +google.golang.org/protobuf/internal/fieldsort +google.golang.org/protobuf/runtime/protoiface +google.golang.org/protobuf/proto +google.golang.org/protobuf/internal/descfmt +google.golang.org/protobuf/internal/descopts +google.golang.org/protobuf/internal/encoding/defval +google.golang.org/protobuf/internal/version +golang.org/x/net/context/ctxhttp +golang.org/x/net/context +github.com/cloudflare/cfssl/api +github.com/cloudflare/cfssl/api/client +github.com/zmap/zcrypto/x509 +github.com/gobuffalo/here +github.com/markbates/pkger/here +github.com/markbates/pkger/pkging +google.golang.org/protobuf/encoding/prototext +google.golang.org/protobuf/internal/filedesc +github.com/markbates/pkger/internal/maps +github.com/markbates/pkger/pkging/stdos +github.com/markbates/pkger +github.com/gogo/protobuf/proto +google.golang.org/protobuf/internal/encoding/tag +google.golang.org/protobuf/internal/impl +github.com/zmap/zlint/v2/util +github.com/zmap/zlint/v2/lint +github.com/zmap/zlint/v2/lints/apple +github.com/zmap/zlint/v2/lints/cabf_br +github.com/zmap/zlint/v2/lints/cabf_ev +github.com/zmap/zlint/v2/lints/community +github.com/zmap/zlint/v2/lints/etsi +github.com/zmap/zlint/v2/lints/mozilla +github.com/zmap/zlint/v2/lints/rfc +github.com/zmap/zlint/v2 +github.com/gogo/protobuf/sortkeys +github.com/google/gofuzz +gopkg.in/inf.v0 +k8s.io/apimachinery/third_party/forked/golang/reflect +k8s.io/apimachinery/pkg/conversion +k8s.io/apimachinery/pkg/selection +k8s.io/apimachinery/pkg/fields +k8s.io/apimachinery/pkg/util/sets +k8s.io/apimachinery/pkg/util/errors +k8s.io/apimachinery/pkg/util/validation/field +k8s.io/apimachinery/pkg/util/validation +github.com/go-logr/logr +k8s.io/klog/v2 +k8s.io/apimachinery/pkg/api/resource +k8s.io/apimachinery/pkg/labels +k8s.io/apimachinery/pkg/conversion/queryparams +k8s.io/apimachinery/pkg/runtime/schema +k8s.io/apimachinery/pkg/util/json +k8s.io/apimachinery/pkg/util/naming +k8s.io/apimachinery/pkg/util/runtime +github.com/modern-go/concurrent +gopkg.in/yaml.v2 +github.com/modern-go/reflect2 +google.golang.org/protobuf/internal/filetype +google.golang.org/protobuf/runtime/protoimpl +github.com/golang/protobuf/proto +google.golang.org/protobuf/types/known/anypb +github.com/golang/protobuf/ptypes/any +google.golang.org/protobuf/types/known/durationpb +google.golang.org/protobuf/types/known/timestamppb +github.com/golang/protobuf/ptypes/duration +k8s.io/apimachinery/pkg/types +github.com/golang/protobuf/ptypes/timestamp +github.com/json-iterator/go +k8s.io/apimachinery/pkg/util/intstr +github.com/golang/protobuf/ptypes +github.com/google/certificate-transparency-go/client/configpb +golang.org/x/net/http/httpguts +golang.org/x/net/http2/hpack +github.com/gobuffalo/flect +golang.org/x/net/http2 +k8s.io/utils/pointer +golang.org/x/tools/go/internal/gcimporter +golang.org/x/tools/go/gcexportdata +golang.org/x/mod/semver +golang.org/x/tools/internal/event/label +golang.org/x/tools/internal/event/keys +golang.org/x/tools/internal/event/core +golang.org/x/tools/internal/event +golang.org/x/tools/internal/gocommand +golang.org/x/tools/go/internal/packagesdriver +golang.org/x/tools/internal/packagesinternal +golang.org/x/tools/internal/typesinternal +golang.org/x/xerrors/internal +golang.org/x/xerrors +golang.org/x/tools/go/packages +sigs.k8s.io/structured-merge-diff/v4/value +k8s.io/apimachinery/pkg/util/net +sigs.k8s.io/yaml +sigs.k8s.io/controller-tools/pkg/loader +k8s.io/apimachinery/pkg/runtime +sigs.k8s.io/controller-tools/pkg/version +sigs.k8s.io/controller-tools/pkg/markers +github.com/markbates/pkger/pkging/embed +github.com/markbates/pkger/pkging/mem +sigs.k8s.io/kubebuilder/v3 +github.com/go-errors/errors +sigs.k8s.io/kustomize/kyaml/errors +github.com/monochromegane/go-gitignore +github.com/davecgh/go-spew/spew +sigs.k8s.io/controller-tools/pkg/genall +github.com/pmezard/go-difflib/difflib +gopkg.in/yaml.v3 +github.com/xlab/treeprint +sigs.k8s.io/kustomize/kyaml/ext +github.com/mailru/easyjson/jlexer +github.com/mailru/easyjson/buffer +github.com/mailru/easyjson/jwriter +github.com/go-openapi/swag +github.com/go-openapi/jsonpointer +k8s.io/apimachinery/pkg/watch +github.com/PuerkitoBio/urlesc +golang.org/x/text/width +k8s.io/apimachinery/pkg/apis/meta/v1 +github.com/PuerkitoBio/purell +github.com/go-openapi/jsonreference +github.com/go-openapi/spec +github.com/stretchr/testify/assert +sigs.k8s.io/kustomize/kyaml/sets +sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/selection +sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/sets +sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/errors +sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation/field +sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation +sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels +sigs.k8s.io/kustomize/kyaml/yaml +sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1184 +sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1186 +sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1188 +sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1190 +sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1191 +sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi +sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi +sigs.k8s.io/kubebuilder/v3/pkg/internal/validation +sigs.k8s.io/kustomize/kyaml/kio/kioutil +sigs.k8s.io/kustomize/kyaml/openapi +sigs.k8s.io/kustomize/kyaml/kio +sigs.k8s.io/kustomize/kyaml/fieldmeta +sigs.k8s.io/kustomize/kyaml/yaml/schema +sigs.k8s.io/kustomize/kyaml/yaml/walk +sigs.k8s.io/kustomize/kyaml/yaml/merge2 +sigs.k8s.io/kustomize/kyaml/yaml/merge3 +sigs.k8s.io/kubebuilder/v3/pkg/model/resource +sigs.k8s.io/kustomize/kyaml/kio/filters +sigs.k8s.io/kubebuilder/v3/pkg/model/stage +sigs.k8s.io/kubebuilder/v3/pkg/config +github.com/google/certificate-transparency-go +sigs.k8s.io/kubebuilder/v3/pkg/config/store +golang.org/x/mod/module +github.com/cloudflare/cfssl/helpers +github.com/google/certificate-transparency-go/jsonclient +sigs.k8s.io/kustomize/kyaml/fn/framework +github.com/google/certificate-transparency-go/client +github.com/cloudflare/cfssl/config +github.com/cloudflare/cfssl/csr +golang.org/x/tools/go/ast/astutil +github.com/cloudflare/cfssl/signer +golang.org/x/tools/internal/fastwalk +golang.org/x/tools/internal/gopathwalk +sigs.k8s.io/kubebuilder/v3/pkg/config/v2 +github.com/cloudflare/cfssl/signer/local +github.com/cloudflare/cfssl/signer/remote +github.com/cloudflare/cfssl/selfsign +github.com/cloudflare/cfssl/signer/universal +github.com/cloudflare/cfssl/initca +github.com/cloudflare/cfssl/cli +sigs.k8s.io/kubebuilder/v3/pkg/config/v3 +golang.org/x/tools/internal/imports +github.com/cloudflare/cfssl/cli/genkey +sigs.k8s.io/kubebuilder/v3/pkg/plugin/util +k8s.io/apimachinery/pkg/api/equality +k8s.io/api/rbac/v1 +k8s.io/apiextensions-apiserver/pkg/apis/apiextensions +k8s.io/api/admissionregistration/v1beta1 +k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1 +k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1 +sigs.k8s.io/controller-tools/pkg/rbac +sigs.k8s.io/controller-tools/pkg/webhook +golang.org/x/tools/imports +sigs.k8s.io/kubebuilder/v3/pkg/machinery +sigs.k8s.io/kubebuilder/v3/pkg/config/store/yaml +sigs.k8s.io/kubebuilder/v3/pkg/plugin +sigs.k8s.io/kubebuilder/v3/pkg/plugins +sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/certmanager +sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/crd +sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/crd/patches +sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/kdefault +sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/manager +sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/prometheus +sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac +sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/samples +sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/webhook +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang +sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/declarative/v1/internal/templates +sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1 +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/api +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/certmanager +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/crd/patches +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/crd +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/kdefault +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/manager +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/prometheus +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/rbac +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/samples +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/webhook +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/controllers +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/hack +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds/internal/templates +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds/internal/templates/api +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds/internal/templates/controllers +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2 +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds/internal/templates/hack +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/declarative/v1 +sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3 +sigs.k8s.io/controller-tools/pkg/crd/markers +sigs.k8s.io/controller-tools/pkg/crd +sigs.k8s.io/kubebuilder/v3/pkg/cli/alpha/config-gen +sigs.k8s.io/kubebuilder/v3/pkg/cli +sigs.k8s.io/kubebuilder/v3/cmd +Building subPackage ./pkg/... +sigs.k8s.io/kubebuilder/v3/pkg/cli/alpha/config-gen/examples/advancedextension +sigs.k8s.io/kubebuilder/v3/pkg/cli/alpha/config-gen/examples/basicextension +running tests +? sigs.k8s.io/kubebuilder/v3/cmd [no test files] +=== RUN TestCLI +Running Suite: CLI Suite +======================== +Random Seed: 1654011702 +Will run 87 of 87 specs + +••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• +Ran 87 of 87 Specs in 0.006 seconds +SUCCESS! -- 87 Passed | 0 Failed | 0 Pending | 0 Skipped +--- PASS: TestCLI (0.03s) +PASS +ok sigs.k8s.io/kubebuilder/v3/pkg/cli 1.457s +=== RUN TestNewCommand +=== RUN TestNewCommand/testdata/componentconfig +../project/api/v1alpha1/groupversion_info.go:24:2: cannot find package "." in: + /private/tmp/nix-build-kubebuilder-3.1.0.drv-0/source/vendor/sigs.k8s.io/controller-runtime/pkg/scheme +../project/controllers/bar_controller.go:20:2: cannot find package "." in: + /private/tmp/nix-build-kubebuilder-3.1.0.drv-0/source/vendor/sigs.k8s.io/controller-runtime +error running controller-gen +=== RUN TestNewCommand/testdata/default +../project/api/v1alpha1/groupversion_info.go:24:2: cannot find package "." in: + /private/tmp/nix-build-kubebuilder-3.1.0.drv-0/source/vendor/sigs.k8s.io/controller-runtime/pkg/scheme +../project/controllers/bar_controller.go:20:2: cannot find package "." in: + /private/tmp/nix-build-kubebuilder-3.1.0.drv-0/source/vendor/sigs.k8s.io/controller-runtime +error running controller-gen +=== RUN TestNewCommand/testdata/disableauthproxy +../project/api/v1alpha1/groupversion_info.go:24:2: cannot find package "." in: + /private/tmp/nix-build-kubebuilder-3.1.0.drv-0/source/vendor/sigs.k8s.io/controller-runtime/pkg/scheme +../project/controllers/bar_controller.go:20:2: cannot find package "." in: + /private/tmp/nix-build-kubebuilder-3.1.0.drv-0/source/vendor/sigs.k8s.io/controller-runtime +error running controller-gen +=== RUN TestNewCommand/testdata/enablecertmanager +../project/api/v1alpha1/groupversion_info.go:24:2: cannot find package "." in: + /private/tmp/nix-build-kubebuilder-3.1.0.drv-0/source/vendor/sigs.k8s.io/controller-runtime/pkg/scheme +../project/controllers/bar_controller.go:20:2: cannot find package "." in: + /private/tmp/nix-build-kubebuilder-3.1.0.drv-0/source/vendor/sigs.k8s.io/controller-runtime +error running controller-gen +=== RUN TestNewCommand/testdata/enableconversionwebhooks +../project/api/v1alpha1/groupversion_info.go:24:2: cannot find package "." in: + /private/tmp/nix-build-kubebuilder-3.1.0.drv-0/source/vendor/sigs.k8s.io/controller-runtime/pkg/scheme +../project/controllers/bar_controller.go:20:2: cannot find package "." in: + /private/tmp/nix-build-kubebuilder-3.1.0.drv-0/source/vendor/sigs.k8s.io/controller-runtime +error running controller-gen +=== RUN TestNewCommand/testdata/enableprometheus +../project/api/v1alpha1/groupversion_info.go:24:2: cannot find package "." in: + /private/tmp/nix-build-kubebuilder-3.1.0.drv-0/source/vendor/sigs.k8s.io/controller-runtime/pkg/scheme +../project/controllers/bar_controller.go:20:2: cannot find package "." in: + /private/tmp/nix-build-kubebuilder-3.1.0.drv-0/source/vendor/sigs.k8s.io/controller-runtime +error running controller-gen +=== RUN TestNewCommand/testdata/enablewebhooks +../project/api/v1alpha1/groupversion_info.go:24:2: cannot find package "." in: + /private/tmp/nix-build-kubebuilder-3.1.0.drv-0/source/vendor/sigs.k8s.io/controller-runtime/pkg/scheme +../project/controllers/bar_controller.go:20:2: cannot find package "." in: + /private/tmp/nix-build-kubebuilder-3.1.0.drv-0/source/vendor/sigs.k8s.io/controller-runtime +error running controller-gen +--- PASS: TestNewCommand (5.16s) + --- PASS: TestNewCommand/testdata/componentconfig (2.74s) + --- PASS: TestNewCommand/testdata/default (0.65s) + --- PASS: TestNewCommand/testdata/disableauthproxy (0.35s) + --- PASS: TestNewCommand/testdata/enablecertmanager (0.35s) + --- PASS: TestNewCommand/testdata/enableconversionwebhooks (0.34s) + --- PASS: TestNewCommand/testdata/enableprometheus (0.34s) + --- PASS: TestNewCommand/testdata/enablewebhooks (0.38s) +PASS +ok sigs.k8s.io/kubebuilder/v3/pkg/cli/alpha/config-gen 6.208s +? sigs.k8s.io/kubebuilder/v3/pkg/cli/alpha/config-gen/examples/advancedextension [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/cli/alpha/config-gen/examples/basicextension [no test files] +=== RUN TestConfig +Running Suite: Config Suite +=========================== +Random Seed: 1654011698 +Will run 65 of 65 specs + +••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• +Ran 65 of 65 Specs in 0.001 seconds +SUCCESS! -- 65 Passed | 0 Failed | 0 Pending | 0 Skipped +--- PASS: TestConfig (0.01s) +PASS +ok sigs.k8s.io/kubebuilder/v3/pkg/config 0.394s +=== RUN TestConfigStore +Running Suite: Config Store Suite +================================= +Random Seed: 1654011698 +Will run 4 of 4 specs + +•••• +Ran 4 of 4 Specs in 0.000 seconds +SUCCESS! -- 4 Passed | 0 Failed | 0 Pending | 0 Skipped +--- PASS: TestConfigStore (0.00s) +PASS +ok sigs.k8s.io/kubebuilder/v3/pkg/config/store 0.316s +=== RUN TestConfigStoreYaml +Running Suite: Config Store YAML Suite +====================================== +Random Seed: 1654011699 +Will run 21 of 21 specs + +••••••••••••••••••••• +Ran 21 of 21 Specs in 0.003 seconds +SUCCESS! -- 21 Passed | 0 Failed | 0 Pending | 0 Skipped +--- PASS: TestConfigStoreYaml (0.01s) +PASS +ok sigs.k8s.io/kubebuilder/v3/pkg/config/store/yaml 0.266s +=== RUN TestConfigV2 +Running Suite: Config V2 Suite +============================== +Random Seed: 1654011700 +Will run 41 of 41 specs + +••••••••••••••••••••••••••••••••••••••••• +Ran 41 of 41 Specs in 0.002 seconds +SUCCESS! -- 41 Passed | 0 Failed | 0 Pending | 0 Skipped +--- PASS: TestConfigV2 (0.01s) +PASS +ok sigs.k8s.io/kubebuilder/v3/pkg/config/v2 0.429s +=== RUN TestConfigV3 +Running Suite: Config V3 Suite +============================== +Random Seed: 1654011701 +Will run 49 of 49 specs + +••••••••••••••••••••••••••••••••••••••••••••••••• +Ran 49 of 49 Specs in 0.003 seconds +SUCCESS! -- 49 Passed | 0 Failed | 0 Pending | 0 Skipped +--- PASS: TestConfigV3 (0.02s) +PASS +ok sigs.k8s.io/kubebuilder/v3/pkg/config/v3 0.256s +=== RUN TestValidation +Running Suite: Validation Suite +=============================== +Random Seed: 1654011701 +Will run 7 of 7 specs + +••••••• +Ran 7 of 7 Specs in 0.001 seconds +SUCCESS! -- 7 Passed | 0 Failed | 0 Pending | 0 Skipped +--- PASS: TestValidation (0.00s) +PASS +ok sigs.k8s.io/kubebuilder/v3/pkg/internal/validation 0.637s +=== RUN TestMachinery +Running Suite: Machinery suite +============================== +Random Seed: 1654011703 +Will run 83 of 83 specs + +••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• +Ran 83 of 83 Specs in 0.003 seconds +SUCCESS! -- 83 Passed | 0 Failed | 0 Pending | 0 Skipped +--- PASS: TestMachinery (0.02s) +PASS +ok sigs.k8s.io/kubebuilder/v3/pkg/machinery 0.305s +=== RUN TestResource +Running Suite: Resource Suite +============================= +Random Seed: 1654011703 +Will run 131 of 131 specs + +••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• +Ran 131 of 131 Specs in 0.002 seconds +SUCCESS! -- 131 Passed | 0 Failed | 0 Pending | 0 Skipped +--- PASS: TestResource (0.03s) +PASS +ok sigs.k8s.io/kubebuilder/v3/pkg/model/resource 0.494s +=== RUN TestStage +Running Suite: Stage Suite +========================== +Random Seed: 1654011703 +Will run 24 of 24 specs + +•••••••••••••••••••••••• +Ran 24 of 24 Specs in 0.001 seconds +SUCCESS! -- 24 Passed | 0 Failed | 0 Pending | 0 Skipped +--- PASS: TestStage (0.01s) +PASS +ok sigs.k8s.io/kubebuilder/v3/pkg/model/stage 0.438s +=== RUN TestPlugin +Running Suite: Plugin Suite +=========================== +Random Seed: 1654011704 +Will run 101 of 101 specs + +••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• +Ran 101 of 101 Specs in 0.002 seconds +SUCCESS! -- 101 Passed | 0 Failed | 0 Pending | 0 Skipped +--- PASS: TestPlugin (0.08s) +PASS +ok sigs.k8s.io/kubebuilder/v3/pkg/plugin 0.438s +=== RUN TestPlugin +Running Suite: Plugin Util Suite +================================ +Random Seed: 1654011704 +Will run 5 of 5 specs + +••••• +Ran 5 of 5 Specs in 0.000 seconds +SUCCESS! -- 5 Passed | 0 Failed | 0 Pending | 0 Skipped +--- PASS: TestPlugin (0.00s) +PASS +ok sigs.k8s.io/kubebuilder/v3/pkg/plugin/util 0.289s +? sigs.k8s.io/kubebuilder/v3/pkg/plugins [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1 [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/certmanager [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/crd [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/crd/patches [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/kdefault [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/manager [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/prometheus [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/rbac [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/samples [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/common/kustomize/v1/scaffolds/internal/templates/config/webhook [no test files] +=== RUN TestGoPlugin +Running Suite: Go Plugin Suite +============================== +Random Seed: 1654011705 +Will run 77 of 77 specs + +••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• +Ran 77 of 77 Specs in 0.002 seconds +SUCCESS! -- 77 Passed | 0 Failed | 0 Pending | 0 Skipped +--- PASS: TestGoPlugin (0.02s) +PASS +ok sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang 0.271s +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/declarative/v1 [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/declarative/v1/internal/templates [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2 [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/api [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/certmanager [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/crd [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/crd/patches [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/kdefault [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/manager [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/prometheus [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/rbac [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/samples [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/config/webhook [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/controllers [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v2/scaffolds/internal/templates/hack [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3 [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds/internal/templates [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds/internal/templates/api [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds/internal/templates/controllers [no test files] +? sigs.k8s.io/kubebuilder/v3/pkg/plugins/golang/v3/scaffolds/internal/templates/hack [no test files] +installing +post-installation fixup +strip is /nix/store/5zwjd1qglpnipr0f2j5lf8lngp5244b0-Toolchains/XcodeDefault.xctoolchain/bin/strip +stripping (with command strip and flags -S) in /nix/store/b6a7n0ppv6yj5lgl6dd3pvk5x330qvmb-kubebuilder-3.1.0/bin +patching script interpreter paths in /nix/store/b6a7n0ppv6yj5lgl6dd3pvk5x330qvmb-kubebuilder-3.1.0 + +[nix-shell:~/github/source-watcher]$ go version +go version go1.16.6 darwin/amd64 + +[nix-shell:~/github/source-watcher]$ ls .. +dataModels kitt4sme.code-workspace ngsi-timeseries-api.wiki osmops.demo storywine-api +ekz-sc.odds-n-ends kitt4sme.dazzler nixie osmops.pkgs storywine-app +ekz-sc.platform kitt4sme.fipy ome-odd-n-ends peml storywine-playground +gitops-playground kitt4sme.flaw-sleuth opa-envoy-plugin platos-cave themes +haskell-project-template kitt4sme.live orchestracities.charts profies trixie-dotses +hasnix kitt4sme.roughnator orchestracities.keycloak-scripts resto +kitt4sme kitt4sme.wiki orchestracities.platform sdk +kitt4sme.anomaly ngsi-timeseries-api osmops.code-workspace source-watcher + +[nix-shell:~/github/source-watcher]$ code ../osmops.code-workspace + +[nix-shell:~/github/source-watcher]$ go test ./... +? github.com/fluxcd/source-watcher [no test files] +? github.com/fluxcd/source-watcher/controllers [no test files] +ok github.com/fluxcd/source-watcher/osmops/cfg 0.346s +ok github.com/fluxcd/source-watcher/osmops/engine 0.258s +ok github.com/fluxcd/source-watcher/osmops/nbic 0.296s +ok github.com/fluxcd/source-watcher/osmops/util 0.195s +ok github.com/fluxcd/source-watcher/osmops/util/http 0.312s +ok github.com/fluxcd/source-watcher/osmops/util/http/sec 0.183s + +[nix-shell:~/github/source-watcher]$ make test +/Users/andrea/go/bin//controller-gen object:headerFile="hack/boilerplate.go.txt" paths="./..." +go fmt ./... +go vet ./... +/Users/andrea/go/bin//controller-gen crd:crdVersions=v1 rbac:roleName=source-reader webhook paths="./..." output:crd:artifacts:config=config/crd/bases +go test ./... -coverprofile cover.out +? github.com/fluxcd/source-watcher [no test files] +? github.com/fluxcd/source-watcher/controllers [no test files] +ok github.com/fluxcd/source-watcher/osmops/cfg 0.239s coverage: 99.0% of statements +ok github.com/fluxcd/source-watcher/osmops/engine 0.277s coverage: 96.8% of statements +ok github.com/fluxcd/source-watcher/osmops/nbic 0.452s coverage: 99.1% of statements +ok github.com/fluxcd/source-watcher/osmops/util 0.413s coverage: 98.7% of statements +ok github.com/fluxcd/source-watcher/osmops/util/http 0.415s coverage: 100.0% of statements +ok github.com/fluxcd/source-watcher/osmops/util/http/sec 0.315s coverage: 100.0% of statements + +[nix-shell:~/github/source-watcher]$ go mod --help +go mod --help: unknown command +Run 'go help mod' for usage. + +[nix-shell:~/github/source-watcher]$ go help mod +Go mod provides access to operations on modules. + +Note that support for modules is built into all the go commands, +not just 'go mod'. For example, day-to-day adding, removing, upgrading, +and downgrading of dependencies should be done using 'go get'. +See 'go help modules' for an overview of module functionality. + +Usage: + + go mod [arguments] + +The commands are: + + download download modules to local cache + edit edit go.mod from tools or scripts + graph print module requirement graph + init initialize new module in current directory + tidy add missing and remove unused modules + vendor make vendored copy of dependencies + verify verify dependencies have expected content + why explain why packages or modules are needed + +Use "go help mod " for more information about a command. + + +[nix-shell:~/github/source-watcher]$ go help get +usage: go get [-d] [-t] [-u] [-v] [-insecure] [build flags] [packages] + +Get resolves its command-line arguments to packages at specific module versions, +updates go.mod to require those versions, downloads source code into the +module cache, then builds and installs the named packages. + +To add a dependency for a package or upgrade it to its latest version: + + go get example.com/pkg + +To upgrade or downgrade a package to a specific version: + + go get example.com/pkg@v1.2.3 + +To remove a dependency on a module and downgrade modules that require it: + + go get example.com/mod@none + +See https://golang.org/ref/mod#go-get for details. + +The 'go install' command may be used to build and install packages. When a +version is specified, 'go install' runs in module-aware mode and ignores +the go.mod file in the current directory. For example: + + go install example.com/pkg@v1.2.3 + go install example.com/pkg@latest + +See 'go help install' or https://golang.org/ref/mod#go-install for details. + +In addition to build flags (listed in 'go help build') 'go get' accepts the +following flags. + +The -t flag instructs get to consider modules needed to build tests of +packages specified on the command line. + +The -u flag instructs get to update modules providing dependencies +of packages named on the command line to use newer minor or patch +releases when available. + +The -u=patch flag (not -u patch) also instructs get to update dependencies, +but changes the default to select patch releases. + +When the -t and -u flags are used together, get will update +test dependencies as well. + +The -insecure flag permits fetching from repositories and resolving +custom domains using insecure schemes such as HTTP, and also bypassess +module sum validation using the checksum database. Use with caution. +This flag is deprecated and will be removed in a future version of go. +To permit the use of insecure schemes, use the GOINSECURE environment +variable instead. To bypass module sum validation, use GOPRIVATE or +GONOSUMDB. See 'go help environment' for details. + +The -d flag instructs get not to build or install packages. get will only +update go.mod and download source code needed to build packages. + +Building and installing packages with get is deprecated. In a future release, +the -d flag will be enabled by default, and 'go get' will be only be used to +adjust dependencies of the current module. To install a package using +dependencies from the current module, use 'go install'. To install a package +ignoring the current module, use 'go install' with an @version suffix like +"@latest" after each argument. + +For more about modules, see https://golang.org/ref/mod. + +For more about specifying packages, see 'go help packages'. + +This text describes the behavior of get using modules to manage source +code and dependencies. If instead the go command is running in GOPATH +mode, the details of get's flags and effects change, as does 'go help get'. +See 'go help gopath-get'. + +See also: go build, go install, go clean, go mod. + +[nix-shell:~/github/source-watcher]$ go get github.com/walle/targz +go: downloading github.com/walle/targz v0.0.0-20140417120357-57fe4206da5a +go get: added github.com/walle/targz v0.0.0-20140417120357-57fe4206da5a + +[nix-shell:~/github/source-watcher]$ make run +/Users/andrea/go/bin//controller-gen object:headerFile="hack/boilerplate.go.txt" paths="./..." +go fmt ./... +go vet ./... +/Users/andrea/go/bin//controller-gen crd:crdVersions=v1 rbac:roleName=source-reader webhook paths="./..." output:crd:artifacts:config=config/crd/bases +go run ./main.go + + +[nix-shell:~/github/source-watcher]$ ls +CODE_OF_CONDUCT.md Dockerfile PROJECT _tmp config docs go.sum nbi-connection.yaml shell.nix +CONTRIBUTING.md LICENSE README.md bin controllers federico.md hack osm_ops_config.yaml tmp.yaml +DCO Makefile _deployment_ build cover.out go.mod main.go osmops xxx.tar.gz + +[nix-shell:~/github/source-watcher]$ tar -tzf xxx.tar.gz +tar: Removing leading `/' from member names +/osmops/.DS_Store +/osmops/cfg/fsvisitor.go +/osmops/cfg/fsvisitor_test.go +/osmops/cfg/store.go +/osmops/cfg/store_test.go +/osmops/cfg/store_test_dir/test_1/deploy.me/secret.yaml +/osmops/cfg/store_test_dir/test_1/osm_ops_config.yaml +/osmops/cfg/store_test_dir/test_2/config.yaml +/osmops/cfg/store_test_dir/test_3/osm_ops_config.yaml +/osmops/cfg/store_test_dir/test_4/osm_ops_config.yaml +/osmops/cfg/store_test_dir/test_5/osm_ops_config.yaml +/osmops/cfg/store_test_dir/test_5/secret.yaml +/osmops/cfg/store_test_dir/test_6/deploy.me/ignore1.yaml +/osmops/cfg/store_test_dir/test_6/deploy.me/k1.ops.yaml +/osmops/cfg/store_test_dir/test_6/deploy.me/recurse/ignore2.yaml +/osmops/cfg/store_test_dir/test_6/deploy.me/recurse/k2.ops.yaml +/osmops/cfg/store_test_dir/test_6/deploy.me/recurse/k3.ops.yaml +/osmops/cfg/store_test_dir/test_6/deploy.me/secret.yaml +/osmops/cfg/store_test_dir/test_6/osm_ops_config.yaml +/osmops/cfg/yamlreader.go +/osmops/cfg/yamlreader_test.go +/osmops/cfg/yamltypes.go +/osmops/cfg/yamltypes_test.go +/osmops/engine/mocks_test.go +/osmops/engine/reconcile.go +/osmops/engine/reconcile_test.go +/osmops/engine/reconcile_test_dir/test_1/osm_ops_config.yaml +/osmops/engine/reconcile_test_dir/test_2/deploy.me/secret.yaml +/osmops/engine/reconcile_test_dir/test_2/osm_ops_config.yaml +/osmops/engine/reconcile_test_dir/test_3/deploy.me/k1.ops.yaml +/osmops/engine/reconcile_test_dir/test_3/deploy.me/k2.ops.yaml +/osmops/engine/reconcile_test_dir/test_3/deploy.me/k3.ops.yaml +/osmops/engine/reconcile_test_dir/test_3/deploy.me/secret.yaml +/osmops/engine/reconcile_test_dir/test_3/osm_ops_config.yaml +/osmops/engine/tmp_test.go +/osmops/nbic/auth.go +/osmops/nbic/auth_test.go +/osmops/nbic/client.go +/osmops/nbic/client_test.go +/osmops/nbic/enpoints.go +/osmops/nbic/nbi_data_test.go +/osmops/nbic/nbi_test.go +/osmops/nbic/nsdescriptors.go +/osmops/nbic/nsdescriptors_test.go +/osmops/nbic/nsinstances.go +/osmops/nbic/nsinstances_test.go +/osmops/nbic/vimaccounts.go +/osmops/nbic/vimaccounts_test.go +/osmops/util/http/builders.go +/osmops/util/http/builders_test.go +/osmops/util/http/client.go +/osmops/util/http/client_test.go +/osmops/util/http/reshandlers.go +/osmops/util/http/reshandlers_test.go +/osmops/util/http/sec/session.go +/osmops/util/http/sec/session_test.go +/osmops/util/http/sec/token.go +/osmops/util/http/sec/token_test.go +/osmops/util/types.go +/osmops/util/types_test.go + +[nix-shell:~/github/source-watcher]$ tar -tzf _tmp/ +.DS_Store osm-install/ osm-install-issues/ osm-mitm/ osm-pkgs/ + +[nix-shell:~/github/source-watcher]$ tar -tzf _tmp/osm-pkgs/ +README.md openldap_knf/ openldap_knf.tar.gz openldap_ns/ openldap_ns.tar.gz + +[nix-shell:~/github/source-watcher]$ tar -tzf _tmp/osm-pkgs/openldap_ns.tar.gz +openldap_ns/ +openldap_ns/openldap_nsd.yaml +openldap_ns/README.md +openldap_ns/checksums.txt + +[nix-shell:~/github/source-watcher]$ tar -tzf ~/Downloads/openldap_ns.tar.gz +openldap_ns/ +openldap_ns/openldap_nsd.yaml +openldap_ns/README.md +openldap_ns/checksums.txt + +[nix-shell:~/github/source-watcher]$ rm ~/Downloads/openldap_ns.tar.gz + +[nix-shell:~/github/source-watcher]$ rm xxx.tar.gz + +[nix-shell:~/github/source-watcher]$ make run +/Users/andrea/go/bin//controller-gen object:headerFile="hack/boilerplate.go.txt" paths="./..." +go fmt ./... +go vet ./... +/Users/andrea/go/bin//controller-gen crd:crdVersions=v1 rbac:roleName=source-reader webhook paths="./..." output:crd:artifacts:config=config/crd/bases +go run ./main.go + + +[nix-shell:~/github/source-watcher]$ tar -tzf xxx.tar.gz | less + +[nix-shell:~/github/source-watcher]$ diff --git a/_tmp/osmops-packaging/http-calls.md b/_tmp/osmops-packaging/http-calls.md new file mode 100644 index 0000000..0f2d45b --- /dev/null +++ b/_tmp/osmops-packaging/http-calls.md @@ -0,0 +1,109 @@ +Get a token. + +```console +curl -v 192.168.64.22/osm/admin/v1/tokens \ + -H 'Accept: application/json' -H 'Content-Type: application/yaml' \ + -d '{"username": "admin", "password": "admin", "project_id": "admin"}' + +export OSM_TOKEN=wa7FDNWma96ODtC0PofsQoi1GBAi7Ah6 +``` + +Create OpenLDAP KNF package using original OSM package. + +```console +curl -v 192.168.64.22/osm/vnfpkgm/v1/vnf_packages_content \ + -H "Authorization: Bearer ${OSM_TOKEN}" \ + -H 'Accept: application/json' -H 'Content-Type: application/gzip' \ + -H 'Content-Filename: openldap_knf.tar.gz' \ + -H 'Content-File-MD5: 2a7d74587151e9fd0c1fd727003b8a1b' \ + --data-binary @../osm-pkgs/openldap_knf.tar.gz +``` + +List all KNF packages in YAML format. + +```console +curl -v 192.168.64.22/osm/vnfpkgm/v1/vnf_packages_content \ + -H "Authorization: Bearer ${OSM_TOKEN}" +``` + +Delete OpenLDAP KNF package. +NOTE: can't use ID declared in the package (`openldap_knf`); you've +got to use OSM's own ID (`_id` field). + +```console +curl -v 192.168.64.22/osm/vnfpkgm/v1/vnf_packages_content/cc10f9ff-64d2-44c1-a096-95ce17b32b70 \ + -X DELETE \ + -H "Authorization: Bearer ${OSM_TOKEN}" +``` + + +Create OpenLDAP KNF package using OSMOps-generated package. + +```console +curl -v 192.168.64.22/osm/vnfpkgm/v1/vnf_packages_content \ + -H "Authorization: Bearer ${OSM_TOKEN}" \ + -H 'Accept: application/json' -H 'Content-Type: application/gzip' \ + -H 'Content-Filename: openldap_knf.tar.gz' \ + -H 'Content-File-MD5: 92821dce2b09c67cc17c780037f3ff03' \ + --data-binary @osmops-generated/openldap_knf.tar.gz +``` + +Update OpenLDAP KNF package using OSMOps-generated package. + +```console +curl -v 192.168.64.22/osm/vnfpkgm/v1/vnf_packages_content/openldap_knf \ + -X PUT \ + -H "Authorization: Bearer ${OSM_TOKEN}" \ + -H 'Accept: application/json' -H 'Content-Type: application/gzip' \ + -H 'Content-Filename: openldap_knf.tar.gz' \ + -H 'Content-File-MD5: 92821dce2b09c67cc17c780037f3ff03' \ + --data-binary @osmops-generated/openldap_knf.tar.gz +``` + +Apparently you can't PUT the tgz. Notice you get the same error if +you use the OSM KNF package ID: + +- /osm/vnfpkgm/v1/vnf_packages_content/943a86dc-a90e-4add-be34-571f3e90f41b + +```log +2022-06-17T09:09:58 INFO nbi.server _cplogging.py:213 [17/Jun/2022:09:09:58] CRITICAL: Exception 'RequestBody' object has no attribute 'get' +Traceback (most recent call last): + File "/usr/lib/python3/dist-packages/osm_nbi/nbi.py", line 1585, in default + op_id = self.engine.edit_item( + File "/usr/lib/python3/dist-packages/osm_nbi/engine.py", line 372, in edit_item + return self.map_topic[topic].edit(session, _id, indata, kwargs) + File "/usr/lib/python3/dist-packages/osm_nbi/base_topic.py", line 630, in edit + indata = self._remove_envelop(indata) + File "/usr/lib/python3/dist-packages/osm_nbi/descriptor_topics.py", line 628, in _remove_envelop + if clean_indata.get("etsi-nfv-vnfd:vnfd"): +AttributeError: 'RequestBody' object has no attribute 'get' +2022-06-17T09:09:58 INFO nbi.access _cplogging.py:283 10.244.0.1 - admin/admin;session=Q9RyqcFgHNCP [17/Jun/2022:09:09:58] "PUT /osm/vnfpkgm/v1/vnf_packages_content/openldap_knf HTTP/1.0" 400 110 "" "curl/7.64.1" +``` + +Update OpenLDAP KNF descriptor. + +```console +curl -v 192.168.64.22/osm/vnfpkgm/v1/vnf_packages_content/4ffdeb67-92e7-46fa-9fa2-331a4d674137 \ + -X PUT \ + -H "Authorization: Bearer ${OSM_TOKEN}" \ + -H 'Accept: application/json' -H 'Content-Type: application/yaml' \ + --data-binary @../osm-pkgs/openldap_knf/openldap_vnfd.yaml +``` + + +List all NS packages in YAML format. + +```console +curl -v 192.168.64.22/osm/nsd/v1/ns_descriptors_content \ + -H "Authorization: Bearer ${OSM_TOKEN}" +``` + +Update OpenLDAP NS descriptor. + +```console +curl -v 192.168.64.22/osm/nsd/v1/ns_descriptors_content/6cb736be-8a59-4c60-a979-22328b8094d4 \ + -X PUT \ + -H "Authorization: Bearer ${OSM_TOKEN}" \ + -H 'Accept: application/json' -H 'Content-Type: application/yaml' \ + --data-binary @../osm-pkgs/openldap_ns/openldap_nsd.yaml +``` diff --git a/_tmp/osmops-packaging/knf-pkg-list.md b/_tmp/osmops-packaging/knf-pkg-list.md new file mode 100644 index 0000000..98a24a3 --- /dev/null +++ b/_tmp/osmops-packaging/knf-pkg-list.md @@ -0,0 +1,53 @@ +KNF package list example +------------------------ + +Example output of a `GET` on `/osm/vnfpkgm/v1/vnf_packages_content`. + +```yaml +- _admin: + created: 1655475517.840946 + modified: 1655478654.0081894 + onboardingState: ONBOARDED + operationalState: ENABLED + projects_read: + - c9e9cf6f-98a4-45f8-b18d-b70d93422d88 + projects_write: + - c9e9cf6f-98a4-45f8-b18d-b70d93422d88 + storage: + descriptor: openldap_knf/openldap_vnfd.yaml + folder: 4ffdeb67-92e7-46fa-9fa2-331a4d674137 + fs: mongo + path: /app/storage/ + pkg-dir: openldap_knf + zipfile: openldap_knf.tar.gz + usageState: NOT_IN_USE + userDefinedData: {} + _id: 4ffdeb67-92e7-46fa-9fa2-331a4d674137 + _links: + packageContent: + href: /vnfpkgm/v1/vnf_packages/4ffdeb67-92e7-46fa-9fa2-331a4d674137/package_content + self: + href: /vnfpkgm/v1/vnf_packages/4ffdeb67-92e7-46fa-9fa2-331a4d674137 + vnfd: + href: /vnfpkgm/v1/vnf_packages/4ffdeb67-92e7-46fa-9fa2-331a4d674137/vnfd + description: KNF with single KDU using a helm-chart for openldap version 1.2.7 + df: + - id: default-df + ext-cpd: + - id: mgmt-ext + k8s-cluster-net: mgmtnet + id: openldap_knf + k8s-cluster: + nets: + - id: mgmtnet + kdu: + - helm-chart: stable/openldap:1.2.7 + name: ldap + mgmt-cp: mgmt-ext + onboardingState: ONBOARDED + operationalState: ENABLED + product-name: openldap_knf + provider: Telefonica + usageState: NOT_IN_USE + version: '1.0' +``` \ No newline at end of file diff --git a/_tmp/osmops-packaging/nbi-pkg-handler.md b/_tmp/osmops-packaging/nbi-pkg-handler.md new file mode 100644 index 0000000..095dac2 --- /dev/null +++ b/_tmp/osmops-packaging/nbi-pkg-handler.md @@ -0,0 +1,54 @@ +Uploaded corrupt tgz stream to `vnf_packages_content`. This way I was +able to get a clue of what NBI does by looking at the Python exception +stack trace in the logs. + +```console +curl -v 192.168.64.22/osm/vnfpkgm/v1/vnf_packages_content \ + -H 'Authorization: Bearer PxtGMSVAy1LJ2COGAFiYm7ctXI22CG7i' \ + -H 'Accept: application/json' -H 'Content-Type: application/gzip' \ + -H 'Content-Filename: openldap_knf.tar.gz' \ + -H 'Content-File-MD5: 2a7d74587151e9fd0c1fd727003b8a1b' \ + -d @../osm-pkgs/openldap_knf.tar.gz +``` + +Notice `curl` switch should've been `--data-binary`, not `-d` which +probably treats the file as text. + +```console +$ multipass shell osm2 +$ kubectl -n osm logs nbi-6f5fd9ff89-8xpkw +``` + +```log +2022-06-16T16:12:22 INFO nbi.server _cplogging.py:213 [16/Jun/2022:16:12:22] CRITICAL: Exception Compressed file ended before the end-of-stream marker was reached +Traceback (most recent call last): + File "/usr/lib/python3/dist-packages/osm_nbi/nbi.py", line 1417, in default + completed = self.engine.upload_content( + File "/usr/lib/python3/dist-packages/osm_nbi/engine.py", line 277, in upload_content + return self.map_topic[topic].upload_content( + File "/usr/lib/python3/dist-packages/osm_nbi/descriptor_topics.py", line 324, in upload_content + tar = tarfile.open(mode="r", fileobj=file_pkg) + File "/usr/lib/python3.8/tarfile.py", line 1603, in open + return func(name, "r", fileobj, **kwargs) + File "/usr/lib/python3.8/tarfile.py", line 1674, in gzopen + t = cls.taropen(name, mode, fileobj, **kwargs) + File "/usr/lib/python3.8/tarfile.py", line 1651, in taropen + return cls(name, mode, fileobj, **kwargs) + File "/usr/lib/python3.8/tarfile.py", line 1514, in __init__ + self.firstmember = self.next() + File "/usr/lib/python3.8/tarfile.py", line 2318, in next + tarinfo = self.tarinfo.fromtarfile(self) + File "/usr/lib/python3.8/tarfile.py", line 1104, in fromtarfile + buf = tarfile.fileobj.read(BLOCKSIZE) + File "/usr/lib/python3.8/gzip.py", line 292, in read + return self._buffer.read(size) + File "/usr/lib/python3.8/_compression.py", line 68, in readinto + data = self.read(len(byte_view)) + File "/usr/lib/python3.8/gzip.py", line 479, in read + if not self._read_gzip_header(): + File "/usr/lib/python3.8/gzip.py", line 437, in _read_gzip_header + self._read_exact(extra_len) + File "/usr/lib/python3.8/gzip.py", line 416, in _read_exact + raise EOFError("Compressed file ended before the " +EOFError: Compressed file ended before the end-of-stream marker was reached +``` diff --git a/_tmp/osmops-packaging/ns-pkg-list.md b/_tmp/osmops-packaging/ns-pkg-list.md new file mode 100644 index 0000000..b36fb86 --- /dev/null +++ b/_tmp/osmops-packaging/ns-pkg-list.md @@ -0,0 +1,56 @@ +NS package list example +----------------------- + +Example output of a `GET` on `/osm/nsd/v1/ns_descriptors_content`. +Notice this is the same as a `GET` on `/osm/nsd/v1/ns_descriptors`---I +think this is the SOL005 endpoint? + +```yaml +- _admin: + created: 1655475749.560676 + modified: 1655478812.9101527 + onboardingState: ONBOARDED + operationalState: ENABLED + projects_read: + - c9e9cf6f-98a4-45f8-b18d-b70d93422d88 + projects_write: + - c9e9cf6f-98a4-45f8-b18d-b70d93422d88 + storage: + descriptor: openldap_ns/openldap_nsd.yaml + folder: 6cb736be-8a59-4c60-a979-22328b8094d4 + fs: mongo + path: /app/storage/ + pkg-dir: openldap_ns + zipfile: openldap_ns.tar.gz + usageState: NOT_IN_USE + userDefinedData: {} + _id: 6cb736be-8a59-4c60-a979-22328b8094d4 + _links: + nsd_content: + href: /nsd/v1/ns_descriptors/6cb736be-8a59-4c60-a979-22328b8094d4/nsd_content + self: + href: /nsd/v1/ns_descriptors/6cb736be-8a59-4c60-a979-22328b8094d4 + description: NS consisting of a single KNF openldap_knf connected to mgmt network + designer: OSM + df: + - id: default-df + vnf-profile: + - id: openldap + virtual-link-connectivity: + - constituent-cpd-id: + - constituent-base-element-id: openldap + constituent-cpd-id: mgmt-ext + virtual-link-profile-id: mgmtnet + vnfd-id: openldap_knf + id: openldap_ns + name: openldap_ns + nsdOnboardingState: ONBOARDED + nsdOperationalState: ENABLED + nsdUsageState: NOT_IN_USE + version: '1.0' + virtual-link-desc: + - id: mgmtnet + mgmt-network: true + vnfd-id: + - openldap_knf +``` \ No newline at end of file diff --git a/_tmp/osmops-packaging/osmops-generated/openldap_knf.tar.gz b/_tmp/osmops-packaging/osmops-generated/openldap_knf.tar.gz new file mode 100755 index 0000000000000000000000000000000000000000..10bbc46cfa2a4f70d8cc502124f090d45689b14e GIT binary patch literal 486 zcmV zP5u(H@Y+ZyD-QGdITcKh1a`><7(-M(Atd=fVFXlcI($n-Su!aK%JND|K{?@N$_VIF zmF9wps<^w8v)a9&vb(Y>X_~BD0Vn=HpXGn?zuAV~e(TjaDh_-%$-WG$%LdKj(kF zLA?!Q7xK7^=iB3{|6lC?gg)#4oC$Ve|DU7CEA+o4oLj*)6^5f_h-js)gs2oZx>WSd cZyLnf=2uo$R<4tu0RRC1|H=wT$N&%k0E=tyUjP6A literal 0 HcmV?d00001 diff --git a/build/config/project.nix b/build/config/project.nix new file mode 100644 index 0000000..2891bd3 --- /dev/null +++ b/build/config/project.nix @@ -0,0 +1,20 @@ +# +# Project build info. +# +rec +{ + # Absolute path to the repo's root dir. + root = ../../.; + + # The name of this project. Taken to be the name of the repo dir; sort of + # customary for online repos, but change it if you don't like it :-) + # Project derivations like local Haskell packages get added to the + # Nix packages in a set having this name so you can reference them + # easily e.g. `pkgs.my-project.haskell.my-pkg-2`. + # Have a look at `pkgset.nix` to see what winds up in `pkgs.my-project`. + name = baseNameOf (toString root); + + # Absolute path to the directory containing the local source packages + # implementing the project's components. + componentsDir = root + "/components"; +} diff --git a/build/config/version.nix b/build/config/version.nix new file mode 100644 index 0000000..e7c1ac9 --- /dev/null +++ b/build/config/version.nix @@ -0,0 +1,40 @@ +# +# Version of the Nix infrastructure our project uses. +# We pin absolutely everything to make sure no matter what everybody +# gets the exact same build/dev environment, Docker images, etc. +# Reproducibility is king. (TODO need Flakes?) +# +{ + # Arguments to `fetchFromGitHub`, detailing the Nixpkgs source we + # want to use. + nixpkgsGitHub = { + owner = "NixOS"; + repo = "nixpkgs"; + rev = "f6ccdfcd2ac4f2e259d20e378737dcbd0ca7debe"; # (1) + sha256 = "1d2lk7a0l166pvgy0xfdlhxgja986hgn39szn9d1fqamyhxzvbaz"; # (2) + }; + +} +# NOTE +# 1. Nixpkgs commit. +# Git hash of the Nixpkgs commit to fetch. We'll pin our infrastructure +# to the Nix definitions as they were at that commit. Normally it should +# be the latest commit known to work with our project. To get the ID of +# the latest commit on the `nixpkgs-unstable` branch, run +# +# $ git ls-remote https://github.com/nixos/nixpkgs nixpkgs-unstable +# +# A quick way to get a description of a commit is to use the GitHub API +# to GET a JSON object describing the commit associated to the commit +# hash in the URL---short hashes work too. E.g. +# +# https://api.github.com/repos/nixos/nixpkgs/commits/5dbf5f9 +# +# 2. Nixpkgs commit SHA256. +# To figure out the SHA256 of the commit in (1), you could initially +# set it to a made-up one and just let the Nix build bomb out, it'll +# tell you what's the actual SHA256 to use. Or you could run e.g. +# +# $ nix run -f '' nix-prefetch-github -c nix-prefetch-github \ +# --rev 5dbf5f90d97c0af9efd36ecfdb8648e74ce39532 NixOS nixpkgs +# diff --git a/build/default.nix b/build/default.nix new file mode 100644 index 0000000..6f3c131 --- /dev/null +++ b/build/default.nix @@ -0,0 +1,48 @@ +# +# Adapted from https://github.com/c0c0n3/hasnix +# +# TODO: rather go with one of the project templates below? +# - https://github.com/nix-dot-dev/getting-started-nix-template +# - https://github.com/vlktomas/nix-examples +# + +{ + pkgs ? import {} +}: + +let + inherit (pkgs) fetchFromGitHub; + version = import ./config/version.nix; + project = import ./config/project.nix; + +in rec { + + nixpin = fetchFromGitHub version.nixpkgsGitHub; + + fixBrokenPkgsOverlay = self: super: { + kubebuilder = super.callPackage ./pkgs/kubebuilder.nix { }; + }; + + pinnedPkgs = import nixpin { + overlays = [ fixBrokenPkgsOverlay ]; + }; + + devTools = with pinnedPkgs; { + # stuff listed in the source-watcher tute + inherit go kubebuilder kind kubectl kustomize fluxcd; + # TODO ideally we should include docker too... + + # VS code go extension deps + inherit gopls delve gopkgs go-outline gomodifytags impl gotests; + inherit go-tools; # = staticcheck + # missing from nixpkgs: goplay; leaving this out + + # Only needed to connect to the Malaga demo cluster. + inherit openvpn; + }; + + devShell = pinnedPkgs.mkShell { + buildInputs = builtins.attrValues devTools; + }; + +} diff --git a/build/pkgs/kubebuilder.nix b/build/pkgs/kubebuilder.nix new file mode 100644 index 0000000..7a2917c --- /dev/null +++ b/build/pkgs/kubebuilder.nix @@ -0,0 +1,84 @@ +# +# Fix kubebuilder package. It's broken in the nixkpkgs version we're using. +# The problem is just a silly source hash mismatch: +# +# trying https://github.com/kubernetes-sigs/kubebuilder/archive/v3.1.0.tar.gz +# % Total % Received % Xferd Average Speed Time Time Time Current +# Dload Upload Total Spent Left Speed +# 100 135 100 135 0 0 602 0 --:--:-- --:--:-- --:--:-- 602 +# 100 1816k 0 1816k 0 0 2959k 0 --:--:-- --:--:-- --:--:-- 2959k +# unpacking source archive /private/tmp/nix-build-source.drv-0/v3.1.0.tar.gz +# hash mismatch in fixed-output derivation '/nix/store/l2mvac03b398x7jnhbqdf9051k4rsini-source': +# wanted: sha256:1726j2b5jyvllvnk60g6px3g2jyyphd9pc4vgid45mis9b60sh8a +# got: sha256:0bl5ff2cplal6hg75800crhyviamk1ws85sq60h4zg21hzf21y68 +# cannot build derivation '/nix/store/if764s9fl71ihg60sifgr2a9ffp8qb24-kubebuilder-3.1.0.drv': 1 dependencies couldn't be built +# error: build of '/nix/store/if764s9fl71ihg60sifgr2a9ffp8qb24-kubebuilder-3.1.0.drv' failed +# +# I tried fixing it with an overlay, but that didn't work: +# +# fixBrokenPkgsOverlay = self: super: { +# kubebuilder = super.kubebuilder.overrideAttrs (oldAttrs: rec { +# version = "3.1.0"; +# src = super.fetchFromGitHub { +# owner = "kubernetes-sigs"; +# repo = "kubebuilder"; +# rev = "v${version}"; +# sha256 = "0bl5ff2cplal6hg75800crhyviamk1ws85sq60h4zg21hzf21y68"; +# }; +# }); +# }; +# +# I think the problem could be that `overrideAttrs` works with `mkDerivation`, +# but the kubebuilder package uses `buildGoModule`? In fact, with the above +# overlay I get the exact same error as if the `src` attribute hasn't been +# overridden. +# +{ lib +, buildGoModule +, fetchFromGitHub +, installShellFiles +, makeWrapper +, git +, go +}: + +buildGoModule rec { + pname = "kubebuilder"; + version = "3.1.0"; + + src = fetchFromGitHub { + owner = "kubernetes-sigs"; + repo = "kubebuilder"; + rev = "v${version}"; + sha256 = "0bl5ff2cplal6hg75800crhyviamk1ws85sq60h4zg21hzf21y68"; + }; + vendorSha256 = "0zxyd950ksjswja64rfri5v2yaalfg6qmq8215ildgrcavl9974n"; + + subPackages = ["cmd" "pkg/..."]; + + preBuild = '' + export buildFlagsArray+=("-ldflags=-X main.kubeBuilderVersion=v${version} \ + -X main.goos=$GOOS \ + -X main.goarch=$GOARCH \ + -X main.gitCommit=v${version} \ + -X main.buildDate=v${version}") + ''; + + doCheck = true; + + postInstall = '' + mv $out/bin/cmd $out/bin/kubebuilder + wrapProgram $out/bin/kubebuilder \ + --prefix PATH : ${lib.makeBinPath [ go ]} + ''; + + allowGoReference = true; + nativeBuildInputs = [ makeWrapper git ]; + + meta = with lib; { + homepage = "https://github.com/kubernetes-sigs/kubebuilder"; + description = "SDK for building Kubernetes APIs using CRDs"; + license = licenses.asl20; + maintainers = with maintainers; [ cmars ]; + }; +} diff --git a/config/crd/kustomization.yaml b/config/crd/kustomization.yaml new file mode 100644 index 0000000..e69de29 diff --git a/config/default/kustomization.yaml b/config/default/kustomization.yaml new file mode 100644 index 0000000..eeb5bd7 --- /dev/null +++ b/config/default/kustomization.yaml @@ -0,0 +1,9 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: source-system +resources: + - ../rbac + - ../manager + - github.com/fluxcd/source-controller/config//crd?ref=v0.2.0 + - github.com/fluxcd/source-controller/config//manager?ref=v0.2.0 + - namespace.yaml diff --git a/config/default/namespace.yaml b/config/default/namespace.yaml new file mode 100644 index 0000000..6743d7f --- /dev/null +++ b/config/default/namespace.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Namespace +metadata: + labels: + control-plane: controller + name: source-system diff --git a/config/manager/deployment.yaml b/config/manager/deployment.yaml new file mode 100644 index 0000000..a7eb627 --- /dev/null +++ b/config/manager/deployment.yaml @@ -0,0 +1,61 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: source-watcher + labels: + control-plane: controller +spec: + selector: + matchLabels: + app: source-watcher + replicas: 1 + template: + metadata: + labels: + app: source-watcher + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "8080" + spec: + terminationGracePeriodSeconds: 10 + containers: + - name: manager + image: source-watcher + imagePullPolicy: IfNotPresent + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + ports: + - containerPort: 8080 + name: http-prom + env: + - name: RUNTIME_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + args: + - --log-level=info + - --log-json + - --enable-leader-election + livenessProbe: + httpGet: + port: http + path: / + readinessProbe: + httpGet: + port: http + path: / + resources: + limits: + cpu: 1000m + memory: 1Gi + requests: + cpu: 50m + memory: 64Mi + volumeMounts: + - name: tmp + mountPath: /tmp + volumes: + - name: tmp + emptyDir: {} + diff --git a/config/manager/kustomization.yaml b/config/manager/kustomization.yaml new file mode 100644 index 0000000..883979b --- /dev/null +++ b/config/manager/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- deployment.yaml +images: +- name: source-watcher + newName: controller + newTag: latest diff --git a/config/rbac/kustomization.yaml b/config/rbac/kustomization.yaml new file mode 100644 index 0000000..eaa9257 --- /dev/null +++ b/config/rbac/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- role.yaml +- role_binding.yaml +- leader_election_role.yaml +- leader_election_role_binding.yaml diff --git a/config/rbac/leader_election_role.yaml b/config/rbac/leader_election_role.yaml new file mode 100644 index 0000000..eaa7915 --- /dev/null +++ b/config/rbac/leader_election_role.yaml @@ -0,0 +1,32 @@ +# permissions to do leader election. +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: leader-election-role +rules: +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - update + - patch + - delete +- apiGroups: + - "" + resources: + - configmaps/status + verbs: + - get + - update + - patch +- apiGroups: + - "" + resources: + - events + verbs: + - create diff --git a/config/rbac/leader_election_role_binding.yaml b/config/rbac/leader_election_role_binding.yaml new file mode 100644 index 0000000..eed1690 --- /dev/null +++ b/config/rbac/leader_election_role_binding.yaml @@ -0,0 +1,12 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: leader-election-rolebinding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: leader-election-role +subjects: +- kind: ServiceAccount + name: default + namespace: system diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml new file mode 100644 index 0000000..c8c9924 --- /dev/null +++ b/config/rbac/role.yaml @@ -0,0 +1,22 @@ + +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + creationTimestamp: null + name: source-reader +rules: +- apiGroups: + - source.toolkit.fluxcd.io + resources: + - gitrepositories + verbs: + - get + - list + - watch +- apiGroups: + - source.toolkit.fluxcd.io + resources: + - gitrepositories/status + verbs: + - get diff --git a/config/rbac/role_binding.yaml b/config/rbac/role_binding.yaml new file mode 100644 index 0000000..60cf644 --- /dev/null +++ b/config/rbac/role_binding.yaml @@ -0,0 +1,25 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: source-reader +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: source-reader +subjects: +- kind: ServiceAccount + name: default + namespace: source-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: source-writter +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-admin +subjects: + - kind: ServiceAccount + name: default + namespace: source-system diff --git a/controllers/gitrepository_predicate.go b/controllers/gitrepository_predicate.go new file mode 100644 index 0000000..ac89349 --- /dev/null +++ b/controllers/gitrepository_predicate.go @@ -0,0 +1,67 @@ +/* +Copyright 2020, 2021 The Flux authors + +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. +*/ + +package controllers + +import ( + "sigs.k8s.io/controller-runtime/pkg/event" + "sigs.k8s.io/controller-runtime/pkg/predicate" + + sourcev1 "github.com/fluxcd/source-controller/api/v1beta1" +) + +// GitRepositoryRevisionChangePredicate triggers an update event +// when a GitRepository revision changes. +type GitRepositoryRevisionChangePredicate struct { + predicate.Funcs +} + +func (GitRepositoryRevisionChangePredicate) Create(e event.CreateEvent) bool { + src, ok := e.Object.(sourcev1.Source) + + if !ok || src.GetArtifact() == nil { + return false + } + + return true +} + +func (GitRepositoryRevisionChangePredicate) Update(e event.UpdateEvent) bool { + if e.ObjectOld == nil || e.ObjectNew == nil { + return false + } + + oldSource, ok := e.ObjectOld.(sourcev1.Source) + if !ok { + return false + } + + newSource, ok := e.ObjectNew.(sourcev1.Source) + if !ok { + return false + } + + if oldSource.GetArtifact() == nil && newSource.GetArtifact() != nil { + return true + } + + if oldSource.GetArtifact() != nil && newSource.GetArtifact() != nil && + oldSource.GetArtifact().Revision != newSource.GetArtifact().Revision { + return true + } + + return false +} diff --git a/controllers/gitrepository_watcher.go b/controllers/gitrepository_watcher.go new file mode 100644 index 0000000..18a6852 --- /dev/null +++ b/controllers/gitrepository_watcher.go @@ -0,0 +1,139 @@ +/* +Copyright 2020, 2021 The Flux authors + +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. +*/ + +package controllers + +import ( + "context" + "fmt" + "io/ioutil" + "net/http" + "os" + + "github.com/go-logr/logr" + "k8s.io/apimachinery/pkg/runtime" + ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/builder" + "sigs.k8s.io/controller-runtime/pkg/client" + + "github.com/fluxcd/pkg/untar" + sourcev1 "github.com/fluxcd/source-controller/api/v1beta1" + "github.com/martel-innovate/osmops/osmops/engine" +) + +// GitRepositoryWatcher watches GitRepository objects for revision changes +type GitRepositoryWatcher struct { + client.Client + Scheme *runtime.Scheme +} + +// +kubebuilder:rbac:groups=source.toolkit.fluxcd.io,resources=gitrepositories,verbs=get;list;watch +// +kubebuilder:rbac:groups=source.toolkit.fluxcd.io,resources=gitrepositories/status,verbs=get + +func (r *GitRepositoryWatcher) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { + log := logr.FromContext(ctx) + + // get source object + var repository sourcev1.GitRepository + if err := r.Get(ctx, req.NamespacedName, &repository); err != nil { + return ctrl.Result{}, client.IgnoreNotFound(err) + } + + log.Info("New revision detected", "revision", repository.Status.Artifact.Revision) + + // create tmp dir + tmpDir, err := ioutil.TempDir("", repository.Name) + if err != nil { + return ctrl.Result{}, fmt.Errorf("failed to create temp dir, error: %w", err) + } + defer os.RemoveAll(tmpDir) + + // download and extract artifact + summary, err := r.fetchArtifact(ctx, repository, tmpDir) + if err != nil { + log.Error(err, "unable to fetch artifact") + return ctrl.Result{}, err + } + log.Info(summary) + + if engine, err := engine.New(ctx, tmpDir); err != nil { + // no need to log engine init error, engine.New already does that. + return ctrl.Result{}, err + } else { + engine.Reconcile() + // TODO figure out if we should actually return some kind of (partial) + // error if some of the reconciliation ops fail. + } + + // // list artifact content + // files, err := ioutil.ReadDir(tmpDir) + // if err != nil { + // return ctrl.Result{}, fmt.Errorf("failed to list files, error: %w", err) + // } + + // // do something with the artifact content + // for _, f := range files { + // log.Info("Processing " + f.Name()) + // } + + return ctrl.Result{}, nil +} + +func (r *GitRepositoryWatcher) SetupWithManager(mgr ctrl.Manager) error { + return ctrl.NewControllerManagedBy(mgr). + For(&sourcev1.GitRepository{}, builder.WithPredicates(GitRepositoryRevisionChangePredicate{})). + Complete(r) +} + +func (r *GitRepositoryWatcher) fetchArtifact(ctx context.Context, repository sourcev1.GitRepository, dir string) (string, error) { + if repository.Status.Artifact == nil { + return "", fmt.Errorf("respository %s does not containt an artifact", repository.Name) + } + + url := repository.Status.Artifact.URL + + // for local run: + // kubectl -n flux-system port-forward svc/source-controller 8080:80 + // export SOURCE_HOST=localhost:8080 + if hostname := os.Getenv("SOURCE_HOST"); hostname != "" { + url = fmt.Sprintf("http://%s/gitrepository/%s/%s/latest.tar.gz", hostname, repository.Namespace, repository.Name) + } + + // download the tarball + req, err := http.NewRequest("GET", url, nil) + if err != nil { + return "", fmt.Errorf("failed to create HTTP request, error: %w", err) + } + + resp, err := http.DefaultClient.Do(req.WithContext(ctx)) + if err != nil { + return "", fmt.Errorf("failed to download artifact from %s, error: %w", url, err) + } + defer resp.Body.Close() + + // check response + if resp.StatusCode != http.StatusOK { + return "", fmt.Errorf("failed to download artifact, status: %s", resp.Status) + } + + // extract + summary, err := untar.Untar(resp.Body, dir) + if err != nil { + return "", fmt.Errorf("faild to untar artifact, error: %w", err) + } + + return summary, nil +} diff --git a/docs/arch/README.md b/docs/arch/README.md new file mode 100644 index 0000000..bc8147f --- /dev/null +++ b/docs/arch/README.md @@ -0,0 +1,54 @@ +OSM Ops Software Architecture +----------------------------- +> A technical map of the software. + +This document describes (only) the **technical** aspects of the OSM +Ops architecture through a set of interlocked architectural viewpoints. +The document is mainly aimed at developers who need to understand +the big picture before modifying the architecture or extending the +code with new functionality. + + +### Document status + +**Work in progress**. Even though this document is a first draft and +many sections need to be written, the included material should be +enough to gain a basic understanding of the OSM Ops architecture. + + +### Prerequisites + +We assume the reader is well versed in distributed systems and cloud +computing. Moreover, the reader should be familiar with the following +technologies: HTTP/REST, Docker, Kubernetes (in particular the Operator +architecture), Go, Kubebuilder, IaC/DevOps/GitOps, FluxCD, Open Source +MANO. + + +### Table of contents + +1. [Introduction][intro]. The basic ideas are summarised here and then + further developed in later sections. +2. [System requirements][requirements]. An account of functional + requirements and system quality attributes. +3. [Information model][info-model]. What information the system handles + and how it is represented and processed. +4. [System decomposition][components]. Components, interfaces and + modularity. +5. [Interaction mechanics][interaction]. Distributed communication + protocols and synchronisation, caching. +6. [Implementation][implementation]. Codebase essentials. +7. [Deployment and scalability][deployment]. +8. [Quality assurance][qa]. + + + + +[components]: ./components.md +[deployment]: ./deployment.md +[implementation]: ./implementation.md +[info-model]: ./info-model.md +[interaction]: ./interaction.md +[intro]: ./intro.md +[qa]: ./qa.md +[requirements]: ./requirements.md diff --git a/docs/arch/arch.context.png b/docs/arch/arch.context.png new file mode 100644 index 0000000000000000000000000000000000000000..514a1331f705990cd9a2b0c6efb9e03c5f81f605 GIT binary patch literal 4973158 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%0D{QVPVIe_exP@&hF{KQw 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∾3y!SNJadS2ap7BX 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­-jK}uP7q&W<#Q@ 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�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ⅇ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 -gDKNO;6(v<8Y6d`Y1do>{&+t@kTQIfBb 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 z�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 z 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%0D1{$^RMYlv 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

eMj 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

E5}?;{CU+GukBNH#Ri|I3qM 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�lT6*RAsb*>Tz74 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

PYazixPP5n|i*0{2Vp60-yO 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 z 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 jrLd7ZZ{nNY+RE{33*ef%(-9P;2m5kik{+JY7(Y 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ⅅ_d`0j6o#0xT!`T_!reh<`p@Mk-=egXq1EYYK0Z2!M{f{r@DvJX z{afO#!zhfp5N^O+!LqhXR_Oc|`$f{1sFV8a@WWNFzN+sLeM&S;JmfKU^DSl~0E(_{ zZ)Zl{+N3R~gfOKow8Wq@-WZ4E-_6Q;7xGqPfVbDSEIJ==J0Q<6Q__~2K`)dW##*qc zjP4PYQam)x=)T~FqLkX;F^LhjZ`UCXv0{dGz$IsQz6)E(n!f}VL@H?PUMR*{DcC(e zbD=>SK76q23-{*w4$2f@{qQ2MRVABq1ZMJ)giS%EJTV_-XUc{))4yr!Vmtt!K5|wr z0X*JN@E}SLsnMW*!HVtRSGxlDh$!b9h3C$A zoT#J`yO?*)-eY?~WTvWsT4u!Q4n{yLqFmbFVap%*lpFe@VI38SCd|m1=j-{@)z^l$n2SIae*u&3M-R#p0v2fFbJM}} z&}Po##^)gzfP{VP z7#{zRdvjzXN1%!`V&!#$+hUNKy|f(1mOafr>5x03+H3G#7wU6g01R?KExacmW(Kf(Nky`cf%=$*ttEpaiFq2%y7O znUe(U9hXbsM^M;qcc3Zui4HWq+LVNOfiy$~@FAADIzX2yej2bn;%CcICeHCn z(1+btifdKpr*O4nLpKl$&Lp>#zcs%c`oFMn1vGS(m5AJ{k8M9r9v8N5H*UH4e9iKo zXG5P)env)QlxxCP;Pv{0k&JM&{_JiYU(YI|0PI<~00_ppy=ixwJH6XFy;# z5ELChEB~+-;n8;9m{lal9@VxTs3f06^1xU_f14UD1t~1o_x0;gyN4oUNJ5E2_5hR>d*ax zss2*@Z{O?Y8$!RtwKuZ=`CG?O%L%8C1^lCXUFu%f0XcB-=xrs!RX3ZsHIX=v-|Qf4 z-mhdnl%5hltapDwsAq$Jv4WhayR=;9(OKUTRBFLQWGnrl+&2sL!Ee`?HM1;(m=0dC zT4xp{@MZn3IQ!GuG7m2I1k2R}o{|4Gjb>Wze9B^3<^O<-BU6b01``B*u?(U=oP}jn zsy;t`R^Z5c5gc*IG5kGx{&J%1eb{($S(gG{!Kk+;9l3)1dPhF;)%3(*+FUDP{Cmzr zrG|{ve@-ywu_mqll9clxo_)NjK^rw|kJ)ZPWB1V`-r6=3+|q!B6&GL$R#aYor~7?7 z#84^K!SE{BVP6ckuxh6-Bn}dq53HKj6p_H&@*q;;4)mHY4&??KmrY^Vrt-a{ z(&Bb=?!=$_Ea2^jNBEi{B=ejr|3f|7Lu1a-n{UV6Lh_{7K%t0RydpD&5>MeABQSl7 zy}eosNEAcXV4wA`1Y@LJufeb<7F=qc%aJnE?0mEIV*5h6Ln-;>bbvz7oKin0j;Cgn zP8nom+&ot5(0(vp8PoyfJ76+^;98X#NfXVM;W5fx_mBzs+jixiWu2#fU&xERg%^@6v>S&9qQ@W&+p4+zZz{kcFRzgl~>1* z{2q-ZPpTiYia7BH*zyX|?3B9ZeJO^_N^{6d`W(K46QKCR!GY?(``8?ZKF?0}xWG#X z@gDaF9VPgh+Lm9iYLAJt8dId7v#$gVq-MrOSoP3yf@!@Stn0VHX$sy}g2g$wUGUQI zd!#WKX67;?S#EM|vp z?9P6w;mfjeuVU=O+>*vdqp;xn+=Lwke$q+bxCOcX41T6ad7}}@Tz*4Rj@|P}I-H)l zZd(~cZrfMvy03XtC1DXa$DfXwmM_=GPynK@M70dZs+(aXzGJhT3pQbL93)to1IU=W ztiM%fxF9jj%bJc`iNSHyRI%;`AmGU03FAhu`zd~m0Y9OixAhl4ytLJCT+W^UFYB(C zDXBH2#njff*1c>Z7~To-GmMhFZduqA7x|zgESb2IXHS5r9s$G!yZksz^BK@SI;OLh ztOuoh=@pdb`(vEg{sRAqLrXBT_I5{dG7q^;%`|jD&ZI&*!qliBgSHP5eZf~1f`}qN zt0yuXSBSgESS}&87@50pfV|$ID&R#+Hj#T44$G2I%d1~UY?D9bYPdJx2@dOLo(%9s z*z6+_zK>k5HqxZ2`B908*f&pl8y$5%*!*u!wjCEIawAQc25hsIUY3m0R6c^uvBALl z(_0bq^q!c10(-3&YTHMstj_4m`!@H7_OkYcyLbLrP@R@# zl2otM?nQBT_%zhB8w0mOqA5gs!jNX*ZgjrI#97NnMSJf`a`~I=Dq662As7?V#zIEB zDix|=uY$a#^y($SOBpFKqijx85*F7xIDNeMRb$7{SVdxN!J9u0j5XL}8>eaKJ%hy_ z(S5iSw`yYuDOlW%U8v(;BElBbAvs%Jk1E?Mn!Dw=T);=D$pKBvAxXl7vyrMVp11n%+Gu={$e`-`RF*+fsM7NlQ(3w$J9wq);Elv$(VE z*v^)^O_L{7Mx7)@!9$A5X<8?(7^$QD79C+s z6DxMI={(9I{YB2-Fe0{ax-2@k?ZVqsX&gLCnc&+k2$rPUYbZAd?)7JOIF0^BWi zKGNkW#@^_5nt*lz@r3a9!B|j}@~K{83Gl)cyb^iHkr!ijbW_fE74NWDB>D6U^i%XA zPXywXh!88#Nc>~C{gMCVB5X(c^T zy~{x{%%;mDGpuyCXwcI)ENCbYDwF*iQD+_@iLFuO@G*jHJ%wAv8Gp?tO=fEDU3q|C znpIbgJpKZdPKHVv$5OtTAgw!aQZ96XdjrxD-oKffJ2YI~Ak@hRR){MQpWWyQ$BN;&Dz7RfMwQJ`1Ia|fMZsEr z+L4pX7K2S*@(NpuJdvXR+&D7e0zT)?M$~tR8Oz_X^e)}pf_>5VN4}Qa4=6J6L z?W@{_>DziDJSWy2)a)Zy9hB(g&cTNt)Z-?-$@h+f(%ZJT#LyOwW(_My?_Bn%InV4? zn=C#|KvRrI2OCLV8@LXmN$R`}QwV&5Z*k4i@6J#I^<7s$3ERy=K=MPm(GOz8bRx2! zh;0reUIpmVTQaOVM3$D;UYQbs_l%EjW}U1MbXW#TJ9NcQ#6et1Q#jXtEr_q$bz-V; zG4H$cF)<3IKI;Htwpy$yGoosDOHsfBsA?&dv;~yH zw!TeA!b77@$<{T)jAMZtBNUVh8e3IHY+DP0vaxRsRwQbSf*G2yH;sS9Tn!D^|}} zkqv-Fl~?%cqFKI&2HWZ4si4u6k%!b=E1?g zHtzJR@alYrP6!OxeSnrVih_|A}w3Ax*4I2wyid7pwsaLP0J^QnD7OjGu3B;VILnOT~9% ziO5l8y~z^ohdAk5ICY$$zARvuq!s!ge2=sSdJN}1F^0v9W#ocdWbd?O8_t!lD69Gf z<_pU&JtLP#-T0mntMpw4Q5UyH6^?yv&_8ks-r!kP~R5;OAr)3GkUj1dsZDE>WD4E4ooky zYYI7<^X7Svh6G~S@C7E`jYZZI`2LX)`Nthf{rHW;6-<{$gSypn*Q2y;9u}y{+%iPAcVMF(c2*Wu$tC)?iihqbDskc&E@bdFk^oCWO8$#aH8DPb&=s9)m#3_$ zUF(G}$;}|c4S?!jJhe`~z_P)Rq|E2f?=wzk zsTWm!OT$`RT6sE(B0Z`ev5bUB3b2qij>H`|(rIH6J`U1n0aHwkMQ?OTcHFMV> zd%7scjI0%0zsR^qVhR?}>52+u65W@RrP2?we8R}rT0Fx6KF;gU|D>CHhCJ$C^+r@s z7jwK3nmbO zS$fDm=Rw-K`vC_qk7jC^CxIY~a?JD6ohPmH zIbCkgk}9Kkf*+d^1XOZrYI6q|Cma$2W$O0~xf*e6HQ^DfRA5oOCf|{JIC5u@L|h}J zadW?h`|dxuY{n@t5mm}s%Z%8QtdJGMg;+FK*$>nrN@OYVI5gi$3WScoXofzXN``f5 z3&iwjqbqHA#Ea(`-kp&OeD(RnWS^K4q%%Rn`{(NhXhi$htEXqi+IzIhe&$;R7E^+s zlh{W9r0>|RgXg^{liSUM!^nZemTn%fv+Z?8kG$(D$9)KQakfHhAk5_&1jto;Fs6op z0iQjIEEH?6kEym_g4rd1XaM!#C8u~BcD&vF2l#7+>#LffxQfh#plsN(Pd%%QLJU47&T$m)R5R(obZLQF_mS zm0`;&oV$1DeyeYVE^8`i_uz}35LFa%zvLYRk}gUhr3sSF%mm)A2gs zn5DlS^TU0t?ItpVl{13x3$pi;Ti+)+`$-aQZ$eLJP2v5sV>fKgYB%h^D9nPYo`Ko!lSz@f+MV?d-W=`oVEH6B*FaYnCEdypGTbaV}7Qg3?ZG^Nl8%RZ+DSakg13f*R8xlkR#MLcDtm+K) zXv^z#=ZUA>Q`@RQ_tU3B+8g|LMs9iVs3mU}r=IdTB7r5SuUo{(&Nz}f{%@R9WL>cw zhVR_TJ`x-6u-uqPx3|3MI~2$WYOgJ*JsyZpDiz*;-!RW=R876T(2nQio3>U`0F}zV zihY|!Nt(f%W-sx&C-~cn&0B$VQtv`Kxn%Rl>}zn1FtG~co*>Kk+6#ioE}pmTpUs$Q zIfLpNQzxDG1){Yx3gqgirw2qHZ12VA%}jTGlY^_I>LMSPKp!6g2#}El+qo%@?Uj@9 z0IApShn+PXpM;rouF6Xw1I6}QD`COn1Hvy^9K%M!Da6+Lzx{TIoG08gHMm^Q{dd_Sb^viXv|dcP(kYS%KOny122%rg7o3)t1X$DV;x%mG(4TW7fFB**BBpGf~%HI17f z`p>o^ZR$${UDA)hr&k`M52enEqfoXrZuN+cRDPiIl<~{rkoZ5xyjyV(50UnTp(`A+ zkio~N{_N`#c?r=iI=?WFJGz;Cp6fZm?ClS=hd_?;yK^M2t5NL^Xo2h(AhKa=W&{2U zdcX7kG!Z0GheYpefp#=<7ErqO=GyiukWsli(ybFWC7`IxFS^-s*_-L+0{FzN+y{-C zW!~*McM1jAKsh<^iG?K*SF3q+(z1#(GlwRBjiShWu9%0lZrn`u$4R>|wS!Q->?eg! zF{(*=P2Rsd10xGm!YZpU=B0|Gh28H!q`ql*A7h4xDt@>Zs1gC>h16J)z7uXiof!>HIej`P}*61Czq4CJz_m9fi~pROdCF|~ans8iMt zA8e1ERYQM+bvH@J8H=HCbleLQ66f-6`T@Gvt6pwScauDp{G-p!?OBT1>Dc(*zGA(z zaeo3I(+tC9l5PFlc;J0F$w{H(8c8TE>p^LSWP8rkwYn=_p-eV$d@O42cZjyFJQOb* zO3~o{%F`w*Xz-E>$I8fEgF1m=p@787wI>_TFG|Aq^U{s9CPs@`=Z4Knf1Q49D#;UB z)+KBKfxx6Tv;4GgWK8eiDCv8;J9IEKR2-dOTLP{*Mzy?n(dCfl(Op;L%_pQqtthUQ z!Nt~C&Uy^UR*Kgy3|r5@Qai%7o~%#dk%ops&I+z8_X)B|nyF>OB##dT3IR=yN1bc& z-|s54ZNUe*@_@5lT5*EMPBEJ1ji0lmh0u8`i$=_MsxR{H&wX(!&U+M&cjXDVB+C5T zH`ByijfTQPRlqdQ`;%xT>3QW5DJ9+gM+(l^hbu3iCx~&_^ zk_zAL^_R_1=|{@#Dn%BoM7?}Kh`oPK+^{k-QE3vQ_&8XmaOzwgcZvm;L~l6zP9hJ| zn+)06OZl}lEFb5LdA(_Wx>Nhvo>fj+0pF6b@-H7}*kC|BmF|W}FMTaRK39^5OY=m- z^~brA=f$riNQ@Z6+*-Q1?EdvAoM7qidoep5QA}a!5Ho}= z=4T!v;LzJJJ3Vt;^{j9dX})FupR1kO`XC4(d!nf(#`VIB%S`4og zUQ?n1j=TX^5n9dN$|^jF1*h~nTI*HDzm(&?(m!45(zb*PXINvsgGfp0n*W5Zt!}ef z^RlRYaPAVXC|nS#>z!h0aeKecMaw_Sy!>KBemer5 zU3!NhS=UULLQRiJ_nE%@6sG*pcFpHvQ&B0ls49D z;jgz}%jwah_XCB))zKuc@P^}ZzsKE2+ht@4TOk4oM?f^5cABb1@Oz_MP}_i(LDQ$cA+EWVe9ewQ4;}^tPmghi7hKTa5n-MW4hrwBsFIG4|G;20;UK{{BVi zWAp7=5C3*q?z0NR=KS#U(dDR?UYvRvb7OLS3J0@3KYhNmXSboa>=jZVb_R3|2%pCd zZa2$MmGlE&e-(SAORrZiTDwyzp)rA5YcD^KIU52Lr09|?^T|inHr_osw7K@S#elRR!I4aMnfFM*v4wwN2!+qorhf^XCxOPxB7w)w}jOwGU@gK(19d)ROpl}mJ|y7q(-On--9TtNTpXG4NIxC z^Y*-MZ0eK<>t|^d-|}lp#y5|pw>{9R`jGJzus#0hu6il&#q1}tLO+~^;Zf&iBpLN& zNpDn+G_3{c7f39*|DH>-qlREGq`5O}F9g>rRQTXYPA90BFndp;1c0EUs{pcl8@Tx0 zGuF@nX=A(u=%cUHU9CAbS5I8gcx-uB(+9E<_VH$qxIx6u5J-Xerd;FKY7MitRfA`8p4QZasU4A^xA=T+-BPR`hbpL*kg2Cto!omKc$;+hNMI_Jh3bQa(}{+8sN0N~~Y{Vk`EUsjcN=~m5E zK>OcnC{YvYHw4*Phr|T$N`lbT(6FS?Wkm!TFKvITraM`rGW)Nn55TYe-j7|S z4vhL;9elu>t^A8BiT{2&>@WGkf-V?Kx|?5ff*j zq}OTh)^t<4iwA?fB1;1>hmdac`?&;Hn8D-afmXC@jhqfP3w}gR`op%$n;EEqB73G6 zw{kx5R5bEdx>$fFK)((hN zyrgG?%DR>Zd-XjfMKJs~^dr|6YUd~iU})%^gabX& z7Uk=hDt-xM;D8uIW-dOI+rQN})GJ| z*v`mD9uvB2ObD$3K=X9153*zEXPQ_r&HBQ#UP+VvU_(PXD6MSs#aP3GlKeUa(45jc z0|ntN|7u8G)9O$IUF(_23Za|^mwTs{Tt~I@V5+z+fd)Ysh$3r;E!gu^uZEwynN<9%J;Zs{0bg;xfAwH27 z9e~cZWTg4QdXkT}cZ&vBXatDxqIT|KqjBzp4>q(@;H_GA&9eL{=C21IV!#i0(E;L= zTe~2nQdlmpUo=?OIHgT@Id&6dVe@*4K4s(ehc#Do3yAkm1^5P}Gey>l|29A=d|x%n zRG=K9AbaP#l5BI)tQ5&VWyrLQD9clG81-Ii@Gap)6!kL{5lY1ZvDT8n_Oa>nE&-#r zsmI-qCyRuDss+8c+8u>g6g-0?w&4IXPiaqMB$*7G#N#MTpQq6y;1FKPn@-=Qk&Bt? zpN7q!lRS|XB6f~mmi~a8KKBFPcU}D{cv#^*+)zks(0b61;ePRmQFaUFuZFHa zFQD@KnMZmiWka__q;~EB$-RDopvL?XJR!#Q09%_R`y^Gj)Ipc92HQylZ3GB9mqErPb!THpk1EydK6E%-2C&u~M?s8*$_IqmB!nyA)jPP2J^Jm(FXUU=li0HWSBW5zFj4|Fh<>9(UD5Ak+1iFvv78pS#zn znAz;52!d7ih%V0KY??rn*KKa!cWrQ_aQDgt6_^8tA1A-*ob3 zGqU&fpe_B!4#&_^l?ct$aXs1etVnhSy$N>=AX9fP&13M09e?C?zwdP+=U?B2hQ8o@ z=rQc6aum0*^490Ru}wLU@mZr&<9Z z>|#}|bmI2ilyK!1`99kzn@y|2#J%8eGx(Ku8-2(2e~A^vubTxdFkBAY3_H@2lKMny z%x8JiBQ?t1X(Ia8bvj4-()nv-m1K{dH9T?37UWKAz@^_AT(wRA!Fj4jtIayqnh2#{ zomxuCo9RzhD1V=Zu6=IH`%@i1M-`h4Xd4@eM}1wgqUw>PU0-m#YZz1gdYK|7%6xb! zh(~9`&ScqB%!e;pgH*`iHi_qcxI!PMQfpu8OUSrDaMOJE(BhuqEVA)qo$$lDkTk~> z9$*)cA}&ouuV6pjxh|?dbL0@U^?{(YW2QCo7Pos&60IFxC4S8ke`7_{Zpr&Ad1s<=0UaT7wFs(6T0^|`;+k5{u0^Gkv{F-zrrW0 zTaR+1mVi5bH9RBLba1)%+b)aq;OX!biFo9r9_07*-4VirC|;jrvR(N6mY`<&`@vcM zXzh+~p-|pml1mc*tsk#fI=YNcv&tXe1=G#^$NcVQpWG=4)O~tBFvnVWfh-PdlEWv9 zrDAn@Ge1qSCM#c!A@KxvSc0*+d;&zz_vWN@ubv(V_&yo8!Y<@rvBo`f8h_ZB{aMrm zK)Y?)>-TqX&h&Z5B9Jmk*?jy+wmk!4F0Mzt`KPg$zxBA~!k$<|UM{b68+P*XBlkEV zxu#x3uilNGWS&-C&rOde!575{cLS$KC%fc_W|k8rAA^?x62{xCC=J{{ju|@C>gPjI z!EB?fR#}pSZoiCPt6!~;VW4HS#johQ9Vt*NIG&_}%uMY}s6OXtO5%grhLp9LZpnP! zR4-xrv@d5hoZgpzNHhMKhq(CNyMOy601u;OStj?k%?PA6gtUvIZC&1YPTL+lED%o% z;#;_l4H(ILfTZ;2>Y5m^9Lv%KNZNcmru`9@GFf zL|J9{Tmos^&V5>X32|mD?-L~I+Qr3D@Pi7T*)S$x<8slHyLbVxL%mNYDT=(UxF4@d z9@mE+ClQ3{zM(O3Hc7=HSZZa?;>Z4H`;i62QrV03Zp-%u1%Zyu@Ee#T+XvK#J;tKs zer-}6s^B4D-~3BaKPR$2x`9K9>Ay?tb?auGNFj2z6zPc~CYNa49017UNp1@9?dp6U zhk%8ufZ7vE>!V(B2&O%MUd%^RzOH#DLREk zLrF+Z`XEi;*}oQi%>)PJbD+70nG=$B61fW`!zP#DFZT?U45`1|7n4y@`~((ch;t8U zDK5NdlhI7;MF_!4RqZ~*Jb?E2xCgLjA1Iv8Ugoqs3Zs`qF0)VlbgA+GX91L*7Ki2! zA|sA_Dq%0?jj&8ltn6Q724<;!MEzwXjad)!_fbZnRC!v)F{SMPJ&bq%KzY)8Bbd?{ z`qcx=?X$^EYsqw+u>Sna%&s_>YYwrh1+pnsNmcaw%O{WEtd~uz8C&X;|dLUD9dSc2i9ORsSszT?yM7FM}kECY78N#}3Hs1Me*d zz;{$uW1}}AX8pC9t=fJwX3d$^qxof|qibW<*jWi-QOMRCFx$>86aWb&m~P39l0)NVDQ^6*=)xQZ$k^XzlZtT32fC)RZPEAkKk zlXfEgItXvhRHZ4ny1|v~s-qe45);3h!*1;hS7Y(JJrxW8$tOt(H zEaA;MF;Y@cvi8oi{@lu3+%w<&-~FCtJ6Mp>|8sgZ1%gUmiW;rzGBfySJt_dFROyqG}sH)^V=kV%!~Qa^8!!MIdO?Kw5wE8;6JMc}#hE z^9oL7SJvc=EAj9#)J_(k^c<0m!MrQT$j-y`Fe}*AU%7Q@$N!zm^ge}34Rl!s=0fm5 zTD1uepZHzc7^b!hFhf4eqe_F*4z$P0@zRc7_T4W++@RLH+su@n2MEmj;0NdK_UDa1 zWGr$XD3-o^8`btv*bLOw!x!HT{ms~Ux7tzYXA_flIDZq){Z;u6;m5IYQw|bY7T09wSWu#hOIIJZch&+FfmyZkFI$*-*`j^ z|8{2_$hi#q{0H@0OYDMyhx{pYO*i(FJRLd>uYERyI5mcr{M$?mk|dS5aZS*?-?V?g z(J5nnfmBLh93Oyp#3!2jcF*Fa%(^~;UzE|deRf6P+AA4x-Cki85j{3+Cfnd#$x={a zeZa!T`>buXAZ{#mbN%@f6FTbqR6X&A>Hg7{S{*RW~Ey9s6d2ddjS(h1|5sTZ=_4r`%trAsc0{TjBTbIGPKFq z+p)WMrbP7~Z_lNiqDT5W)0ImrEPwh{Q`%Kg4Zn9_{$6*l;sAsah+gXoTgW8GH129} zt0If&y670Y&{Ix$_k-~Z{UM_PF)$o(#6fB3=YM?d}7@9;OyUH{Lyzg*ir{&f^)M(;8-Bus=IpKw;))^z1b z(@^4*!@ecyC?hU(VEccMHy%_G&8C{r@#pXFIb*!OPcnghPV`!J1zXd*(w4drFpbFS zxPO;u@g2L5C|3aA2PR5(n`<@Ony=p&B0(3XlDp0Ni-SaKo(pEo*k!z8%n zepF=h-oE4xK``?-lRDCz-5LEH=UxiLJ?g~e=L?H%cM!F~-hdoUL(It5dnO!iuxOzG zAdrCC4#5$2YR|-p?Tr2Hc;cyGqy1$nP^l-9M~DbsP>+c>nBFB;A$f#d8j=uzFdqra zm3Sr$8ldSZr3>@tYg9qee2>M(8VD)ehJB_fF>FmlB$cbtv*Ml%<_4|u>%z8UCq0Mr z&Ykh|E9-*eG@C4YD?dLvWHxuU9#PO(kM2!)l7u(SBNs>61NrIDE!l&b2M*KAFEBkH z3}?ahH3jLgC|t36Wc01x@|T!>fZocefF+0cIe>k^k=@{18c4waige`YZ)chws7Uf(7;hJ(cyzYgyBBW ztDC$+Q^)Sq!=~2*V_id;m!361M;qX^N0L$n>@tU&BlsJ0%ckkYT-uofZG5Qs2aa!d zJZaMmUHGL&1ruH@T4qd3N9w(hz5ut-lruLvSe302vHb!9^AFwY3wyF*o)hY-_WFma zt{;Dpkr-W;t+V&9GhJE0hZT2Q;6K}3;1?2F1&!QPY_5?qXyeF)w5Txc)9Th;?UO^x zryu}@b87*qNof%kkt@nt{;JBg2Uri&!k0QN_k58JnAIU5Ggk;7Bc^YjQ|jKGPO!WT z@Q5pH^TiiV9jKDH7I6j6AIVAa#4dc~_&dI0IKNkT+P>X1Chhmd=Orb@!9wy+nmUCb zFyd&w-a9d%KaB3%2>2E;xOV`EIwU?CkP_x<;64=Zxw31E_e*<`9gJ3oHYxJ^F6h^S zHpW||3VRM0&=^QG;9Q)s<)C&pp7Gb1?_DmAY7FFG=B9Cj34fbdlx2xuFGKY6(!2ePzw@Tcvugiy)> z@v~n09|33JuO1Xw(Kc{N=XPwcmcC1I%lodRPHYScN78%=j9a&=f`m2x$CW90OjUkY zEPfe5JV{tl9t?U(L2lmGWQRgPibv42BInZ@7^sanKbkwxRbKWXe1@@@7k|1U@6k%Jjn!Rm2DQRPd`wFJ=#+t-n-r@FC@@=3;fNda{dSiiv9TSFc&+Mm^6j61V6m>mNW z*s&-ej(4jKeA}a%GkoBNzctwWpBT#t*p@<~g6t*Ddl5|^0R^KT!2bhs1Y20l&SJvO ziiLvMUY1YrTvlu7zMa7shsGSi_)Ie$3`qI4oo$DltJeuvuGELB)*-uxuUAbe@>Z<3 zn>YmPno#t>7Ikm)QGA4--S6Xx-(!Bv?pR}VNlp@i@33Jt(VhOSOu&6^+PpgD&77N* z(mf{boJlA;iYMxQb`Dd7=+zmr+H$udEF#`u;Y8T9vwcgNC=U}o8=&}@9z#wCy4r5L z)Fp{e9IY_l^`aI6fH1Ay6C&?~ELD?}KzZarfOJ9_dy-hYvi?<-M@LjxB|P-S#iDhj z_6GAH{0z(a4s}TK1ttYAvSR;Ha5wm*srKT0?Lr6O}#pnQl>d~AH#2DnMZs_9G4 z-;U@XTzKkc*mo&3qgZ`|o6OmH|En}_w~h~FyOd3Z@?T#+tyu#9cJS8N#VPRJvc(?uY!3JJ^a4<=iZqulcJJ#- zzrFgWe6OqN|8cX9)CgGvnQcwl%i-+G^hqW!bfh45AV@ z)~vj2pB#o+94w$97Wosoucbx?UMai6*315Cz>EJSnYpR}FIDa<#QpK~y^<`>@6u?j zBq9Z;x$G_<&U^QjsJQQh;$fXx5#C;goNm6ta*O$L`>ZX0c$BmN%#kO^P(rqgl~O{^?@`&F$D8Q0B@t`w84527HoG&GyRLqA(=3M@gbJ zUZj0sj$PxOS2F?f+3gM_+ban+L9!z6;wB9`p=lp{mo2WwJXLx-0AdKD(a=UMWJK;5 z3QWwsWNhg(FmFruuz;R)y6cE(s#zzP)QNp}QYe0wuGGbpXJzD9DYc%$^CexE(^}SE%7>%hoL2RkGCb1NTw@IB4#M9 z!#hj9hq~39ailrHe9OaY|FUh%{m158=Lh_mWBUD+1A6!FwU*^|r&~{lP}6%=-i6DF zZ%r*;O>yDp7Ba*-;T3!EE41Zj}^zj7*H;fVGkmU_`;mSb@I$+=YPfK5d7TC9y5Hl(L5<+M=RZu10f zSP#qU$6Ac$^m3IYtG4XP{6P&sNU_pah4`7xB zzg#R54kU-$WU45Gy6C!gtV-fe_wIy)REISXcK8f~F=?}PS(BA6}yo&;1(E6R>lC1SdC4%&P=({HsCtwKX*f(!} z2sAExP|8T!36j~O7;Gl0%&%E&dW8-N0{@mY@A90jCpsvg6^Sa_SibG_pj-vAvsd)6 zO8X>aXK6Kwv>J+`+Y}%r;2H!1kXqnwH@73-n7|+$5Ynb2C=m$_nV@WMc%t~xWJl)g zjSfjauQ7Xh#Ea6PE!hopD5{Xczq-@KVUIiFOZ1}t5+}yQ{WyC2p=&9u6q0xrjT#89 zA4Zy1K6k^_u(xfK%uLM7D3#!=)~2mce-H_1RB>Z%hMsQYRHo4Px@2KuTB@)B{c<2V zt$Z9Ds%WP`@Yy(c-TL_dN~+n2ltaCjQ@t?gIIiFB8 z4@^e5_!jI3JbUxE1sUQ$d}HpussAYD9Q3@y@owLN1c0hrOXm?L^B4$2_@y)#u&0}= zIn{GTMWNCXSyb?ub!*Hh=fu>-*Wdzgr_iR{p7yz<+Lp1E8JmxjW*|3tb8Z+8!DuBK zoqs}kp@E{+ixc3ovP{;QPFvq)ct5!t7(3Q4Q6jk~e0clr&T;?Y(?ez}Z^JWy!R4C# zz6?B2HfOyD)V-Q1nLusr)u{wn+NfJne<|hE$^hA$aK#nXwA*0()aW@k_ z`xFY;R}A4m`kPWyFPXnNO}rd#`_(jSuoc}ux3k&6dwTz`s~Eh-$LQ6IaHzdh85=)) z%|L!*t=3QQU7OZuH#^0Hg2TDepUwzhgV+1M^?9(5({i(eu!^!$!3!Zq-_l&Rvk++2 z#pgbXMLzeb(R|YCy=Cq;oP9h0+d`@|8nP8JmQMu_V8v$Z;UyLoU}cvyZ-%d!55NLQ zGX1B^L47t|Iev(x+bSC<>TR2x&dR;?u%g{e7G8}mFooHgh3EFsjidRFW^RR}oS8d{ zdFh7qQ)2HY^N#R935aE_%*&8f+{oo1dEvTF>E>{NUqsQ3!7$WR*z~SaF@8Fkn%8>Y z5ew^nQtQkxW@WSKX>W%Dzg* zRag;paTbCpA$OGFKK4kk#g;NCw?L=O_zm(!?Yo<%%6{!>MfzBo`aBfPlDfSPA(hbYWGy}6r0DPWUuGIu4^mh1IHS?M zp7oKc?dA@d_@Br!$+C=;U!Ry@CdBH>)z=Vim5IQOCc){*;<9s9(baSNxMmq=YA&d#-c*v7{7viih5X~~BwEdO#2%Y^UY zro$$%x|iwwO6>f-*50U8xKANxOIk2sUK8F+B;E^qz1>822-Ei;+sTSXY;_k(H`0sl zKiB^wf1+q|PECOTWgqt_9NMubJV$X4 zkNC1IkX|=)YM`^(gAd~b5PVd9Hp##jXAVhf-6*8qCLihfNW}>Jtf6?Ml`Qh0K+?BN z&z{UJibjtowXBSESL9XS3#ao>@)$+zVM_pr2u*6Ht{(00*R2n(T=VdcuKX&y;P&dp zUdnNPgh+Tj2}~djo%DbA;;6=qomhWcSgKC zUW*e5!6rEZhg*N#npkdL=>=_%fMiX_20o;4Qy2a?c+V4NQ?IFu4EmwkMe^fo&{S zrCW{4FO7^T3XUn=di`uQqTSLF!C81v6+%QsEbQkiM0Ru=x@#?LYyQdHiw{HRJ8dEs z2e|h&;V;jP$*SV(n2TtX3kE$`wZEoEip_LYG1*lW~83O_T)B4 z)=*wh{a{o<<@rFJrhBnVC(D3kVSiPEYlOBm^$6ENLJ~J8g>mu%@xTljakqWTdG>3ZZEqxaCYl zCS_LuPe7_qkW2j@0nsXPg1LG+OCZ3Py?7~gT>z{r>Q=YbsDU@PLD(oljmzi&ze|dG z+U~bGf$RuLa^=l6_$XaVpwm>5oBgLm-vqVNv1I70un9kiWp=MGA;)T+;Xc|9`f&I-N4l)~2PV zXQxwcN5wkkWs0AjPI>xRy4DgE(5V%9iD(MSg=>|pNL_PDc>!y#Tp?Z|prTL`nj(@S zc!7dqK#Hhena_j(`^ zUbnEtcEG=hKpe*|c8*4;u{>F>Tcmt(h{w9ObJDG@DLCtySVVK9N zz>U-px;LWZRbue^Uc;5(STM&}h3~oHw-car2%Ac(MK`8mU>6lDjQPwh2t+?}R!(9(+@u zmsv05IJsis4pHG9*2t9!MXg*tA%lPK*AP4hd=lLT{~@~r2BU-eEl1m~7cMY`Ecn;U zss9dY0x7E22eylzu}EDgSLCai4`+&({*_6_mx10}A$&s%{+KMetx`<8qsf&L#c9PK zQ4_)ln{6+A7VOSqI|{$-00Spb>k8By37yi>&F0zl=<73Wt!;(?Gvs9s2Pt$T1F>T3r08a z3PSOpnV(?#3}kt@--f_bI7hsg+>$p&)QXJR<$FI((pX zM*Bb7ff^pT%=j*caEb5rLzW>VII7Hu=DPJZRP^PN*kBzNoNyd0K37+{@-}=c)6W}! za(FspA|TPF(s|qnDjhb@jX{rxsan?w|G2g1=Hb0bX42e#xyNS8wGh4L`HsV-hoM6O z>HF%bjpFn9p(y{W+Uw0vPV4EHhW^S<;s9C{?ds;|Q8<&hs3?PB@q^m#MkU4hQ6I@V z+A>PvIW|>ZZksBLke0vkZU%RJqhm;53{2(~wPMT@wUlESey&`m)`Qq(iGoktHi8x1 z7;UFGiLX#SAYZDi63j-RQkqjOZraYip3a8mi3hRen1`iFI(9r0AYFLJZ++>Fz2xfE zl<~9jm)*@P;ReC%WW>l0l7Hh$&64JmfVBm5NhWO3&r+*9J(I_u{kC~CG=FejSXBcw z3d83YmLs`3c456zY~R_8V2W!cNIC`aBfZcu6B$xuXqZ7HcugAHD$3N~8}$tVQA4O)~nu++Semrlmztz;DviM+A#kCn#(cTp! z%C*s0mN>V*s56Du`mm11t8!t^e?|IK&a~!5#GQ=9!9=duyro1v)ADu+l4M)WsG~ko z6+Zx2RBAR+xVu7LE#hG^WdZ5<2mBJtUs>_MvqQk@&+v6L9)9W~bQV9CD}EnvVIXo- zfsn_VBjPW6kd*(s=qLZ*MMq#SBUgpO(N?fSg7728P-n6pE;jB9!R{neV_XU|=X{Qq z?-?dY{!Y35GA(kI?j#QzD&oE!x$9r6JZ;VWflu~Y-vr8DK+Vhc+zX$*&kMMrh?YZ| z#xEfRt46yyDApeQoy=3{yYU<7^r-kbY^C#4>VZKdJj9KD7Q8UM;B z+6&ye5##wV1oenoWYyc#c%*B5T8YC~k*W)Bm~R&t1g)sftmBC_S_pbwy7DW=5STnP zEETIRR+cqP>}xeY^4H3yI*ZjXbDPIWB7`c<)U9R=%yet4_^Z810&6bA8oVo62H4c^ zDd5CA{v0c5PKnzv-(~=4`C@)y~5w*De88JUI*jc-ERqX1Q zb(}{U9B5X^KK2>r1*&Hw3KkISeYpIMx9l9TonbiW3<1k=$2AGHOPg=&#GjpOo#7kR zZI;%amq_X$&kd7%YZ9;Us0Dy=ZgZ;tg@m_wd-JpxJ?|w7X4|x$b)g7??wDHjn|>P7 zS(ASW8#rQW1|rMTYnSAVw1ttViAA>>d3S)Y0ny_}JfJiNieqC6I01Ol+Kac3Pqbu5^0yL3tz%F@R~=6I7=|zeg`w4fT_LdP?nF>KT6S`~ZVoq0KujK4PaO`C7x{~|B1EJ3nfOVkI48bU zQo0~K3q<|VkqsfSu*~YQn}VL??=uFUl_pg|@sam>4=lc@_2`%b1dYLCzey95J7!TY z)y)KPdcoVs;{td0o0Abf+=6RDbsR`2|uX35-OlD9} zN&etT@jxnxim6?EDQR~Jx|b-=bXcC_vpkbT>Q;Xo6zUWQp2>1ZyBs1XwodSAJ(}kq z$8!r|_2&-vS=^EHji2rUALz~`G0U-5NG5aP)j-wOfyj~|JSQh9CmafJK7MnGQKX{e zL|<5(2O<;b#FAEUy1PiQXX}z|fBzR(5Ah-tS`ScD|5{x)Jv|}~HR*0PK&jRmMrZn8 zIC$09>tk8)avMW&>6|AG#$@sDzDlDzT{PIl})dV zI_g`B3HQ*<`J}9Z&0VLqkHH!#Z?8a3nN)hIbmhzV1K2KyI;SbAkXS1f?(!}Pb-9Q~ zq_lb;h25miM96!dB^{W0H=r7AC@5t9&^!aKrkWR~lz+(}jr@{KC{B-qIHt-*zU!Y1 z*R_K)+qtSTFJ)pp3J*Y)*;El*V|;ht-=o_t>p(=4UlLvVJvzT;USY$KtOSwek>Su0 z@62*xLZ~M(JPF%NBhKQ&G!Y{>b+d zxBh{iqD4fr5yA`cOMqoClS*_UmaN%ZC(Uz-wDReIGnM%O1nYi3Z|e()-$V6JB^fMG z6k$TjIldvO+CiR~5(zdYCCX|UbIyF0ijX9FTwQNCpb)&&+`J*|rC5gci<1?hcY`R zRvQtXsn*tCbYdln>`4<-BD$B34LeXU29JhJ0C2_Lth$SgFi3YxN}+EM4@_O-Tr>NP z56|~3y6)Un!}GAKV^75avm0S@?aE>5Bm4C0Cn7FnJmK+sXJ#6UPs|B>fz@n0PB>G{ zd>*?$oLjlQCf^a_A~pt*skhI1mD!A|SM;YW_x%0$bx#IxA6^`dG-7)lInd5?# zrR~kNzTTIs8_9_z-dC0&!jNG}t<_TO&LQ2k294^?1MP-XXq zrBi%#s82K}{ROoiGvhn`Kqh+W1IY>}68j zgnBdz?6x#MzJ4;tTt;fqlxJ!9&I?a$upLgHBzBS5s z$Cu2rOSG2Oibz|@tm8>?r+tYp{|=ZDL?I)$4ar5AldH`Nuwf;#Xsb@_aOi=d0B?qC zd%!CK_>4-$I)$P~Fefi2CI%~b`782jT8G&(tMoZ$BjT+u2`n{ILsbEJ)m3yRZijE%U`^mz&Ef%^Nj5GtH zK*JAnEy=PucPP;_Y^`V7ijxJE`;+=%WfxEBC^b9@jpI>3)-I9a0>`V^oy84NGmL$Q z)=HIO7;+70LfVRtV?5NRJEtd>2`6nI{`bR1hPBOSxi-=z`FO|J>yMeh(*z^~u&JM= z7wE&Yr88dfp#K(rAvy9b`3OG{dA+j@gFK&I=f~djGiaadiV@*@f^%R?#^#zWeZgFV zrFy(uW3el@?QF$AZdSWV^ddVKp&tlOx#wi^S15lY<1!Bi6in3H+XrO zQaz)YQ<1#o(0mfnTsXH#)P0|8=5)L{J)3JC)O~!a9z*_~#QD=wYHm-TS8~s9&2EZ6 zO@F94qXT(0gmN`jg>@LM@c#=sVWWYt*szRr=-)4lK%YH`NR&I13F*4d-<}2UUEj-j zJ#%{2wddXGKcFe%b(~laXyT%ldkS~6qdD+5dKHpI;!OGz45W1-55AN=bK5ZdU-ETE znXTue&~pxurAjGy2g1J6|2;SJ;VQ6p$?E!{JU|zIl7<~&GiE0JWRolTt*FQkEDV*2 zzxj7V!qBE_Qj9dgsnq=Ajtyx=B~^gdd@3Gy^*m=fl!rrqlWC@r>AdT{XUfWm(2|Wq z0{taICUY=5=f%WL8Oh0i7i5AW)c{%xp(p*xmpyPYXKL(g;?a zC1rIDCgXFBuZ$;mq^d_hjsXJM+>l~G7dZCs@jIDxNRhXuk*FKPXy)plgxALd$@)KY zc6clEj8|ekL=p3)D|^MT@*X67SXH+xKCmh4;i1i;K?tBw)pgQJQdvg!r%2+Q&*(8U1`cP*$gGjHAMn_` zIoHs@eCTOtx;iQo9I z+0z@jcSgE{d;zLqX*6Bd5L6I@a~#T(uHRG5Lzm5D?4lf#Z|JDKsSyk|1i-*)nazs* zyQn4Rhoolsa;0-cwP7}_RXEw*@mYl*fw^nddwo*?e2rJn@GG{F^Ly=T3td9mI!@Ch z;;))??4oX*tU;(?~%TB6clz>KMfQ_S4ABk()I0oq5T;#@DMn>%hh_z*QcihBioT zZ-u;06jL06qQm#X0>@rL{2WWNpk{}vT1#>b-b-(9cj2S2#NG=J;?mifgg9jTNN+^| zDQf9|YX~Xi;C-QbrBoS=C8X*(HWdoXA`$Obs)Z~CuSAxqenm?Tlr07vB2||3nSzbf zH0s$_n&Nr3FB>mYS~wjcWqD1-FE8CwFj4(y`}0ot%f9lKS06o4FbgG$mS4o467O@R z78K%9WZsT5j+n9M0)CJOp)Ab*oE0SJ&(IigF z&Nk(q=oLI}*0gjabgCdhL#oDcin;LoE@&gHr@2af>qaL2iGOk{y|XrNs)k#lA8C@p zvrzGX#hM}65$=O9-DN6P9B|1$qWo#kLY)xQTw`!jmfdoD2JzF%^I%)T!(6pSvNe@! zSq#_ZZd`luK#~9Re(#}y3t7xd`K{1BK{U&hZLaymH)Lw5#5=Mi{QA#qt_^$i)w@AW zz?i5i+5|Le3hv%vtogd2xhm3}Pe~>VWD)HI1j0a8XKDxarXaW?S&YaUzuxHIGn^~~ z1k7syWbExNr}652flW)Y!0}9%DD#FZ0tsmj@1S+*PNHN9AlYkvO(ldau`|+Y zA1m1y;@5mf<@BuI^yfY2AD~ z!mF^S%LJ~KiuC$8$7rnI}(#$Nn zU=WgN0Ls97V)@d}3)I_}qV$bL4_9?^t$!Ro%z%)7SN}*M=>6f61TZDmO`qVi6vZew zAjw zuX)i=fj~Q{hrZ?NfS2mqkoCe|_+1gCTllA*J80#P^6ubiAb-eM?}FR>*wOS9ED1@@ z0ABQa81Qd~mG6E+l8ZS1kqah3(!PWk*9uM}5K>@tFw~{A9G394x^Rx2n122gs~Y~d zCb4Qx6`fpAP28>Yyv%8oyWfSs-xR}#-r%glL?K$L|Jiy7^4zhRc z#zKEY`8~-~1H5i%pykh4)p6*e@O0olRRhQ@mLS{ z2@8yM;dED?dF=c29>9?P=pC|r<)(lVdfmU|A-wr1&8liP8Yk{ajl;cE-bke zkep^(GEB{+ZGkFS7guEU6_=3WKuT7prOiXztIh2c@o$|+Z|{9mviBYJ;3j=S`{(t6 zBCvm$xXad9O_#JDrf#HRuX-){D}1;!R1L*>S@aT{y7Z}UjG2!;Dk3#M6;N9Rfz9iS z1FgZbO#arioKY4$z9%~W_%x#A#2qN)COGt%toX-D@b;%$6#n(!2J(O8;j|tIhyG%Y zL35oVOS;V&R2DaYw+b`^A1MpC8Bgk`DXNQ}QbW6YBZ2^+!a>%Clx>ZEpL#3&Wc( zsJ*SuNy4FII8sGDDz%ZJDb71e0k*vb$?5%fN&?}cIRmB0x`1tr4PBDGq^{t03M{65 z(WI{7UkD5hVB*wR3uh%lO-|PQu?m6ITx*_tMDquTP4o|;)MC6Z66@z28&}q!m-0$? zK_to9)+`Q?83rlal-G;yn=@RVXOY!`$XGnYcl?gu8R)ch(oGOEj878Ma|-PmUB&nW z25hcDQbnXYWa55TtVT~Deu1{m!-keKC)ChJp1-(a8b-sn%mpDDHW1>Pe!`4;*nPy6*^pM zvy}xT({0DHI?dJUlX_!aD<0Tx9FJ21&J%uFFgPDaAqF}Gb>ZGY_iK>i9(<}knrVh*X#w$#fw3_> z4N%91jr551#}v2Cko8l`i&>Opzf3Bd-cw}x`N1w{n&ytsKMEf>KKkKJFMppX7``AO zkRNH`eBNkE$%&0s$Se_AnSrBUAF3YxXC(KK@XJhafptR4E-;YTaa0ht%I~PBSaZ9? z7qNbFuT#hT*h$BJqB~1FhrH0a3Ym8IA(U^vKq}Ga5kX7KraSdW?C|(6H=ppsGC?ft z(5_wXJ3+vP_V3kehfA!i62oGUvb*flh8t=Iq{hp6*p_NJdnj=@5LljXFbXqUeU=6! z)m(bn{2H@)IJHxMgKPMG4@djikZLS>TQ-gVUIY#r^aBo1rx&`Pql~|kOA6X$x`QWC zA>+KRYT{$<;2>O&m}yt_Y7^qgydqHLyf+AsMfnrLT8htGHnWU>o_P7jd zy(_)w>O~4%KP9ZW2serf2iS9}t7JdUxkt^>Kf|B5N7++`A>Glx^qgh|_x<1LIq$5+ z++1S+e-f~j;*KAuPD?--i@%w(G$qf)M(2ov!)b^n@1uY7#_w+B&`X^LTf# zGnUpwVyX)db_8#f(qqCi8UnM`2-=}O_fiu2y^h*54>#}f6kQ$i-_I~P6LK)dCl9%c zu!2=$OQLgGfAlI6KGFTVRXB>e{$2>oW>zRzNb@vdZKoEHqU)6oJ^PP&#Cr4#_)dbE zmW(ecPuJ5qpg%DHgYvj~X8638ChQaeZ3>`YagVq_=hhKHJJy#@dQIXCYpid{I6m5Q z{xvJ+ly1XVaJHi$unwtZ1?XTW=Lz4GnmboJhk|fTb!Y%MQ7MS26*I(b;uNaVaU*YD z0~XQ^S7=N#Zr29k2lvQ2Tx=U=j3{s?Pc4LCfib$DD+NRL>2?^&`F(Wit^H|+r;JcP z)SM8xO2tc{;rmdT-M*gPndw4JWUDG~*ljhV)z*8 z*B1~@(Hq0V^cOm75Zuni2_mh4m+wYO&v|pLCl1*VY)P zaiFF|D=dr6acSr|+Z^#lVISSl23UJzV&g=si0REnRFnQjb%T_o{oPxJ%rndSq+t*4 zU335cSpf7!6|Jd=wejh4qkOX!#?;SGb<}lgb|wdTl`}VI0jho_n=9>btODpqh*y6f z|JIBfhM}RHp1`b)!szO+Pn~lr7!25WyGlOnpB%XDSK|8Y!M;S}B#{vrQVc8#Lo>D; zNhk9~;_$Fl7C0XQ;17sfjh)@?rnwfD(o)-}Iu_!|XjzgSOWs2kHIp0TnT5%-t7G~3 z7>`_faFf3^cTyjHerqoHzUgy{;8}%lQys9$=u&GU^G90_=X8k)=*ZlK$D4~w+*gou zNZM{nQW0G}at6XeX^e7We%-bW{xg!8sLLeC>MNP98Kbhze@5aujSPMEsiug@0@DfA zbn!;jo{}Pr%lgE0eo`HVv3Pae%8uLfv>=osp(gUYH zcq~1_d{^)p7d$;_15&Y(=DK*)2BWW2QQQ%qD9^XoZbL_;rirPO{p7$3c2P&W1W_?Y zFHfw2c6*3@JZ+5~i1dm!>qdG+wpCYuKUpusow#bvZ68){KIeA8imm!bZj@NyK;>y} z$Mb{3@g>KZZ%tQ3qya6>St+&NrA~*)a<(&s>q`-7MHw`dWfw8lpTs6Ycf^7X9UE+~ zX;g2HXIY-0Hch-2fvH_XK=LyWY*pR9m~Zl`;kRASiQq~e1kaqq>15Y9II7Sd5*L-2NOZ1Q&ffsvyc6Y&$nlu#{e8!& z{hm{WvEpvoMzt`-G;o8KbhsqUj%^k6Ugl5i0?bSaVF_l{4CP&@J>)F{&kc&4ZZeFF zb+zI;R_B02{j+JNCXDG>&5Tyr73OrnBf*q$BBp6`)E&SY3+?~#@C4eSLQ+j!P$Zp0 zwGK~g=92jU$~Fed>T=KYi`k!3wNFQfWJLihBE6lx$@#PMp~Xd1XN^RGOXE~1eS^yv z0c0Ici)hEIOp{Lv^piw4%zEgp2ee%wjx26p#*3TD&M2466Uj;W)Sf()sL>y88^_t?Wp0>DEeDc<=9o4ltke1jpl$8Z7nyZ~&F!I=Qu9&DrSKy%gq@^|&R zmna2H9^vbV(87u(bP%t2vT`2gUuaDqSl$3g%v5BL(*|#Q9jK43IB&nRJc}*SSg<9l zUI4GkF`8UrwIE6y0-|_yJO9kW7s{lE&<5?=9d&~?LzczPDau2tfIVRXsc`$)tI+ab^boVb|=$U+W)lS{J?*E`0yn_LtoSqk=!`)iQC}wi%*m~3 zj()L_I~N+EaPxq4@q^a9kZxVqVD>*0ppK`rS&l_?C)*5!1i4$MX8|Z@1Tej~!uG}F zAEuY?88a(CR8o}xcgFwWEa-h;q~O}6M+#nZ2daHC`ul4FLjG#B-n# zF{K~PEvh3~dW7Ss;FWtF-@wX_VY=SQe^7oni{W4LrUop+PHu1QoCP1QTQ3#g6kiTX zrZW2oNAaDP@t$+Ir1ktq&EjVN7@&`Y8Rx}M=e3niXf{XJX72Z0pZj?a;?Prv{>!a5 z;oGTD9jAy%8b@qD`L9XvJJlHto-(;()ZwLb&f0^Z23#P`r-|ICVCaet3%?a~q8_A`r;UrO24u`uhuMXZe*pW61;NMY z(IN4zjo{vcmQH4PVDt5Pc$4~dEYXu;OObxeh789A_Kry${L_S~F>QTxwn66Pmf#TZ z>y$;1iN%A({L__$rTT!sH78Y*{rjtj8?9z7vkWA%=ylJtiA%pu}Yrpof%Av4#!_-xEHKB9 zv|YdKnid;G7*1Jo)&-0zZXX{#)Q7GGhwJj2)z50U7lWOIr=xJzg$bOa1wac=G-uqB zm*n_FmQ1x}BuE6jP2IeEvV`sI?{l>+jmQ^DLRF*2pGjDrI>PZ@oK&9Y4QxJJKD}O`97c?j8>Z*Dfs*&M7m# z!M1h;#f3+xa|n(Awhgz?4k`XZ(^&^gDa_*be7$Gac4A=fi&iyl1lBA<3D<)+j^}g= z*s?po8{OqFI@=(XxK$)2@+WCClGKnI-AUTIYAbl-)h!{B-B~TTC-TYpfni%HD8D;* zuc06=He*rX*=F;N9H!rnTv`Uo`)&;DS`3n#YD_S%rQrc<#^>8(%a308LU4VuzwCF7 z5PtD=MUd^3*hb;^iHjc2BxBXc8U^34aQ$ER5IwLO8ptk72-EK_&uH|o<*MJfgFvXQ zUy=+h1lLQ4lfzG}CeXgz;hqyXwTBQsSF@tLC8(aKQ$7oho}av^Yah)7MI{9#n}>lE ze^NNY4;;vMTfAznkqR|~Vv5N;(s%|(gCkMFO7PG^SZE^YO0WXg=^EvQ{ZxqVGryla zUF#(ITmxKsP~3L=Xs2#dhIMGvOV$A5?a7`eUqo;9NlQ;|O$HuH%0m$29Xq_C883#@sG`8bRl!w&ZU1Lt)LwDDF<`rTo8mR|y7O zB9E`8Y8k|e9a>rUA|7uU=3Yik)#!b?JBl+T50jT4Bn8Ifj0`O$YpB+e1)HSoF3atZ zJ-yI9eF!6r#W7KE@;OSimhz?(`~9vc)<vQ~5XkGpr?YWWvL9jeJ7N;13pyZrDM#o*YtcJV9UqpHq z=5JiPkPJ_xd(oZ{3Tgm$1+uQVEVxNs|L6gt%za$;-}PnJqNV2drxGCeG!-`N1El%+g`of8-VrG{A7F6#(hPKZYp3^m*Kf5 z{h#_5n;s$9Xx-)vV?12cV)=)MJS=8VHR3on4Dhq}-c0OL7O2r;+ zKO`I#>X07a^MYUq&ThW!pRn~GT92fJNm^hOaaCGIHooBMwO5arMAV&T zb#h%^TSyx;fBo!=jx$AORB?@DpQffMs{pt?GK*0yRzdEo$rf%~JHouy3_$lnRgdXi zKp~?faO9_z=?cLkVrx_uR*L@0rGL*qYTesYhaj+x|9X^aN+14x@>9daDaJ>%XW_}U z8+Wz3rZvxTb?}Hll3>et`R9pw_P?V|oyy>LUI=p4V zP70F>w^+z6))w?TVDtH8c4dpZ!ili2N!Ek^%DFB-qA1FF% zM$?Wm-X&NXi_f4+zmR>Xret$5gA1_2qw~72QS||`ci|_;>m+}GWdB_+{x7hgc%Xt% z2W&v3FrL~E-p2QB)?Rhzy5k(i2jr4Sv5fng`(Pp!?MW_9I8G>*q;i8i>{gLvW+LL3 zfO7;TTAdvWb*EN`m?VkkA`BfhLTHS+&5+epY%QcH7*D4g!}1Etcn`U*4eNPh_a((q z_ywn<(44LN*@vE5C(+eD?tYW&OTKx^o;9C4y6V_p4f<_F2d<{UjmGK#*tQmx7WFanGTJ0-Lrix4Jk zh=y+tGmF&+j#>QZi}QZX7*@5#+s{y2-Ix;FT`i1-7HU(T_nhhuLt%3kpYBd_3N!c< zyVbk>A;V45;Zis^BG@XF!xEb^X1^$f*qNybo0E&pI};)hQs9nRjA75S>y9l|Yp zMvkysgL3N1Aii}cksloJ?NfHafucznt`VG= zEFG#~TboeYOi#!T&>_o*rSNX66!Cn*^815F^e`D(+I<(0<;eWGC&@K);$j=u0<2wXwY~p1!;$rt#danZp|y@_=$* zef!{~7MjB&&AQ6FDNfY0;#(HIe`AL|RgHA&9KIbdt7SD-TRt0-WgXf%947yP-%?Hs zoe`=1t5$G9bEqp2XFr_uwQIBXPicn==TEGTcq4WGtPr@h2Es4;2oa196;9sRQxWJH zxH{R)OaYqaFm7Pr=4f$3>~OA= zC4fU08wuT;pT~+cd4@re@g=ZsXjyo%n_uM~XKxgLk`zQa)0sE=OKkDo8X6qW72WVt zyf{Dp>(S2m&g*Yvi4{Uu#gCG(^ITU0KS3Uac;o0}6sYHvn2!8UnoI2s z?iHKfAY8S5#ea@<)tZ;GrKIz*J5%0W@Gm#_KOUD}1G&UR!1DOtNLK!3R?q&k89}cA zxRJ#*64709zL9ousa6tK{?XB_>0wHj^a}!oY!iBwK3&S23t7)$4!nG%u0P^s7k=oj z+$2Yyn?L(7wc|OR8plp3@zDsb(aa+par{IM_PnD;QHRVB+Jm?VQ2kgeAv2Xeq3P3`N`OK0OZa9A)K zbPk6a0FKFIcv&xBjoiS!X|HXFjj1XG?t*vWnW||V*w(QKr5_XS=EV71mkvgdbd#e; z%BfXZVH;8q`ZxyI`4)FDwyZu+qhR#deau&F*9D)kyUJu8bMc*dz2>?_>?KN~tewy7 zd!m%BZZK3dF)RjGW<>q)tkSCqe@+M_Q6G$d?!C0Vyz*odHT9eX?hnrT6Y`3&i$PEy5R^Mv5#(bZJ^pj=FgM?FLw72_5;nc(D@sP zxgg$@6L>;~DRhoW?f{U&;ri=yf7L1j&vj?`H-+vk$@Ji$y>kpTmAvq3vDx?{y9am1 zW2aY*($+3e!QjWNPN+mN9X^DXYgVeXt@bLKgz?uE(ZUCno}0Y8MRy z!clQU63jZ7UecCog(N%R{$#G{r60neb|S~xEsZxS{fMAYt19PBWrS`Jde4#jV)kkT zUpnG3eu>_3m$<(nb38)>^*twp_2lBcHItf z10WDNieGMgwGr`GtL?zlc57cnrAph)tOcD9>NW?<|1ZSQ^~bm#S4!fm3p&|AD-aNF z_j8R8n!9^!YJZ-6*4Z&@cVfUlUp8KK4dZ+uzbyw53U{+c1Y#Wgj6O97`AYxmAIBFk z-S=7Kc+LS>_nr>;bHC>3Uneoel3Z4FFZ}4Rr3&i$jpVC35YL5l*a_Y(0)D2*wSWO1 z)SrJPT~=iSGmc!jTD~D%*Qh{?g{`bT?DT!(7|SGLrIWhx%6mED_T$eQgVze5v4cG& zQuWLkX4jvmlm3u>c0tK_&MGwANqR0bbOqCYa(VubCW6WB`NeJp=hgJ*&7O;Nb_m+Q zHv9@C6v4$+$RZ(h*ZYU#3NPS=>x!mY;*!&8q~dR(jkFIyG`QHlJI^E@k-B&0m4H9|*P&RB+AX zZd!}P0}=$@lDfrO#(c;-Q3b;U>4-C-$U6TCJ4u=6io{=vq~dUku9AvrpCru0{(K{} zSz)dt9G4xunYIw3b48Aw5;rOza96Ieob!O~2iN4SFAEb6xDvr_n&Ll4oodxsWzAlw za9>cS$E2l+$4emC8pZ#XX|vXU?S>1}1iepE%(p%wYH3NW=K0sl@d}&zMb2IbfQVZ< z5eo&9*1Zi;=V0Jyq#-Z;uL!#)Av5{;2<%>@Po#tP9*s*#umi2pB(Ir_+1p~OOTp|P zm%Kmi^`-fmNp+t$k!zDjxmj$>kN(L@GgU>F6k#oTzR@u7L{Kd=2P50bU}EtN@!+$* zP8SK{;m&0>iqN)rOBxkACm0(XydXBg2^}q>^r9hv*(;0lK6FCzpLrR4dU5X_uf89F zl1WX2(3IoEE|v$x6U2Wb6xRsFqt!EEqPZ%Fy|TZn;{td)Pm3M>+__)o(@+2_=7jlB z?oVz0NX#F{U1xgHc0{>6^+>bR7$LTF+Q{pQlH*oD2|o6dj~9zO#PHS{Ux4~>Ruf$z zfLZ4f#2>h*Iq7byI@5EX%df1@@EAO zGgAh|>=GN*t^5?yV`>%NuLu%1Y^DI%gbAg0hu{%nX<=c48%aMa9=+WR+ddgFeJO_J?=TJDfdpC_;&2F zQ|EMk*0{02Lh^7ZK#hZp9 z;qhV5Tv&Q}RD=!luF89uDuVRn$#}p~fDu0DNptprI2I?ZGGBC*8z1!4nz3JAtmE|F zonI{4@bwjE+-Kkx0HQ*XtOozBN!O1X$JI0gh;GysYp?F6G`d4&ygQ$~ZE26kP1cd2 zcANv$-#V?i9wz4c7$x6TR7BX@i_UEB;f1Q7u^p=+ZxgB5zxGeEYg1L0YClA1%ECts zs#+gXa7)a7sIkcGf%MccY9-Y1+9}Sv-sCgfCz>|{Sve*3v8J2;v%Jer*x0@ zBe`_vmC05c>L7yRFvFS{&e#W>%_S#LwVI?wA8pGuwzc5AqY5MsXAU$i740(#yxHM4 z3!~sv4y#~d@g*()HrCf`S5Kxvm6=>k%b!x6Tw{f+sU8A%Xbp(>MPffWySb^f*75-% z^VvtS1hF+70#LEJw&J$ZY{1nHT9zIzyb=pKKtQ~`dogm;4`CX7(rSYfFZ%ezM!G8> zc1)KIJl=H_DBb1EL&B}!s;hQz?6qC9xt|b~T_T7)a@(|R&Rtl~WH;MH5M+r(>+Ju_ zmXOy4nA}e1Z*Sx_{3d)!5-_H!x58&j>rcn3)NiAez&a({VaXqcQn?~}%*}lh5sc!| z*hD_@0Xdd#CLb3If*(QY4jCWdr$+M0a7n%I1=&!+u<%!w02Lh807hhce9zVvU^H z$!%m{+T{C}0A8)GsLlnTRn>Sq9zKEFeLU`gdxL6^h+8@i_z(qNh=;>=N8MgF&e*m& z70UJX?a|+1yzy{xo;KEbYz_gByr3M!HF3?fadzSN!c#e@;=xQ1BJ&neZZq@#_Wt)b zJ~>mp?XmlTu$S?{wz7Q&+RRG6U@uboe)&It{qjE_u7CdJ|6KU!hr55ji=7s{yZ_Vw zN7K88yFHM%;aS|dyVrKM(rGPEpkz&vqN0)_a&X!v zog%c>O$-&bancIWln@YvlF*ERO2HF?qCj~7fdmoM?`Q7E@Ar84@E`yCfS>p4eZ8*h zdA+#(CKCQb@XY&^Bdyhl1JgeQ{%brp};GN^JtXAJ_(T1{HhzEd; z)kPm|&F)NEw_Z=h>+~UTAcVl-)NDJdw;kh#?@soEU8>8_V(mvzk4tT+PrG7)t}ki< za{bq$aCNe07r3|PPFnu}pWf$l2Vj-GaWlJN7B8(|F45wY};EN9*3X3;tNFXl=c?XiZvs zm^y%;^$1$;K6qC98~1@E>j99+;wQ57Z~Hz#s*5iB^ny3+o&(@dI4W*4GoNG7hQi4G zb2jCtFhS&U?xo+z`-AloAg9OpcAyIUHHK5LLtZidR<)^8YjRAqDh|se!hF+-xrcd) zL#`z5S@J+?wN}y!f2zeRUA>bY2iTr~6{VB#XYuRm9;Wi#`zh*NwkzSWc@2{ei5&E9 z`!;+VL%PO4k7S7OrM|ejBYUBEqR_o=&boG}QA>E7k(phZi4b#B-E$@1iwi$Dt7M$E z%vd{q-08SGXyI&ImH+-YrIY*3f!z+IqB)gl&sk@*WlP7^kAvc7$EF63h;XGuzg>I0 zmZv!GvSl{-dAR|PJ7pJ>)Yx46s0TfNRfpeF=(zOq+h7Wz~tK{L$O*_RMIAGP!dp8vLm8Oz@z0TJW5K$bJ=%D*IrMWf)2Yr=oZWQ1dI|UB8xSPPg&@`C z_^XBIH&subV{H;Esi$;>aEjDj?i|vQ!h}t}mkR~hrb0&?$*0(s*nC+3ERNHeS*kV^ zsy&z3=L#drOAznNijQ<^6YBI*bHdp^z%?OKm$`EnLai$~&;Th9CveZLt`EGksuO3Y zeGO%ki_cg%dLw_Jul;toiPf7~ERz94h*)pkWR7Nc;?9Fg>;l}OzKye&coD7_jeIbb-whCa z=f&_>k;QfOf#uPl6KzfFUBIbb10^4Ed0w3Pckx)5}D?oxZC)-e2L zir8x?8z0A>9_Ibj!}$6{+rF?eeQoXel?xH;tms;~Op9O$Vb0E~!YyX7SG_G;gwV&{ zn7j%jvXx~JrXTcZG2|-Bxo~mi>*L~~W+NylL;W73n3c?&QRU{}msQ#DfrW_)xSbgu zLfz$_bC${4{>w(rcH&io>d4gbC2NLJ_4oNQj!FKI;~x_(bml29bKb7_k#MS()SdXw`L)I-(Aobo{WgP`E1w#iVj#2ZEvk;TMObSW$V=W zS5ru|nsf*hn1l#Vb@FTV({UL`6QDt<2=!Bznh|j_88)XcmRl={&gDDFIAJB7F)8I& zRe%iK?lV_&G>_%~<#%zO2^z}H1ZJxeB&4-`&6~4tZHBZAd;oa!*{#d7LlRL0uKmLK zR3}4Bkonk|xGy+HR~P?_odE_py4-SxgKaU9BS(BMR{{MjBc+W*(959ezLsR$3=-W` zxU_Z+1yIa)Pv^>_yZ3b^rU`VU>(a>^wMM>iYHHm)_7shFIMcUHNZVLjSnI0&`)(&H z^cB?jP)_>><{5!^GcsuXq1EY{sgA@V0d~zYJLCE&sGS=>Jm`J(8A~w77nev{e7Yo{ z?tW**1D5M)D#m3y(FzuTXA1guv#Q4aAm(!;F%ukDubR90cvbndRVH$- z9H>j&1z_#1cN|^!OnYi*lIQvVY6}lz=0Aq_WyY?bC7D?x+FQdf!&F;qBS$jO#u#Y_ z82R91N>ZVJe2Gs;a7*IsOYi9~i0Ec1g@X_X-7yx}Nr_|Y1pM+UfaFDgmLmR9 zoQ3XDN;u{7-6<`M9&l?uAuc3VAJz!*mryf?b4Tw6W==T)dL;q_O2z6H)!CA~N5QoF z9b9+e(K;|Ruui6p)9HWY@n|R_PPlgIjF*v_Pd3s{Ep^y_dFXC#sJHta52hz_G|y0} zmi?Bg(SpiB-Lo0U*pScAmU=uiG-3CWY^lqJpmaMIGjqAiyJ3t7dbuigdH<>rnY%l& zSyXivASP&RMKi6q{-XsD{VyKfo7Y5{xRKQ8mhvf~qV~7FFFf`!zkCv5KNs+K-Z@m! z?+$hqnEx`uS;OQOdVQSgzjFW7frYKSSAm!yy(DeMHx&8v2eOF3dQ@{(CICady@KGf zPVmUqLh9DS@sn*q8?S3~MgPG?J!9^FvO`8qbVZF*OOR7*p50)a>d(!hQ+pnx#+k7k zXVT_q(g1N!F}VvU#!xe#MR!sEiu7kXITy87ddB|zkD}iOz@11W@jAtupSaUKve^ z%?8w5IDKHYtgA#mP4(1r%b|YK0e7ix(tX%|XWKv;`BGt4+lmO8c-4n$PPsa@#hR}% z{uL3y%bL)Udg{csT6VWe#%Gw8G(MFuDg4!o?SIw6Pk6e@QkJbnC(Gx0adtghgR427 zvQ*i!^CYkWwa%aRQY>Ee^f=bWmy4WFfClH+RMZNS(LNwi!gfQrDoJBUi)=b3a6`|M z0B&|Xddv&TlqZEmH@CY#*xqn5dkWRAmWnP@fw(O&Z1Hi4y=SRl9s8=7%$=Vc*oz70 zdXEE6FHccVPIPq1LEzEl0R0%@G!Gee$9Z zbPu9xa&o*&mN$waoU^XP7D?7wkLCG}9&{-?n=}vqTmwB0*)}YQ?*<*D8`I`)H#TXHfnFKrfke8xqR}@emf9&*AV53LW`s5Tw~VZccfc(x~&BW?eZWhIj)T zlxK4SQn{Qz^oC&vh!dJE~ztuN7a&PzY=m-Lcn!NdL37)fzT)8goV z`Up452B&uV(~Te+kWJk>xwAPZAshmpSYOEPoY*YfjR1uT^@l+_FhxCbaU>A_Vb1>? z*&M~w$BfDxEt1vOcO*S)79QZseR==d?tR=!Sr!lIePh>kyn%(^BqUf~gbaU&z`ner z7(|`eT~vS|0ZEe}pQOzrosi5Pl~k)n&r*(t5G)$4Qu$J+!3zu42|wk)HgsI@=wA7E z3L;QUKN~jWvm>3XKU}{p#6f}Em-NDbg{!}y{9AMEO(X1;Z8b$*4qiab6g)qA6dR+8 zg9_yT6@no!@;9wnPP;!PyAso?fT#@7CE=>9@b=BHXc@x?BJB=`H-h}+zRAUXRHYEZ zZ&{7rDMGLjXFA!q3IE}##q80y{nYhKxzNIKnNNZ^iR zt1;vgrkWo(T=2A&KoS|VLV<7wS}EnkWpflY69u2*#w#rX03qS;1ENJKOy72> zS0z3yVT|wLNkWZeW8l;95Md@{L*;F=U08ZiKN{cTwgX=!>6^Hli71--+>Bq(`m4OR zSO+i0{p5+}3q?cU>f-#Tt_2_|@K2hGaaFSh)~ay_V;r%PqqT(D-Kc+!es?qgnNUbf zAVv6Kyg7ZwTRAClZ@(Od;(i~JD^%<$H*FN$XH}V)Q=!GUTWz^u_p7sc??_03Ue}ht zbcS^*#S#$X?4-cMfo?oaBD?pnp+NT~oJa-k`eE?Eo30!agic77`IUACW{>3)Vi&Ba z*2IvF^$9}Yk~p|HDgQc2Bg@b2>@l7VZzK$A25KMf_T)5zH8~9D!c}cm$>d^eM$$3c z@F9#vX7i~>C(Q%>R{SA_ZUP*XTeU(aSci|!%i!cPlJtR<9*F#||CT8vi$ft$KNn%pP72;J$Ah?XMyTmtO#Ng&cs4f8^PuSHkBo zBJ~wiZ0lK%Gj3upFR_OhjcO^V?x;x@#aV|S6yIw}t*9=7J`JQTtMmr)YDWf-bWFOl zW0xq3xHQ-O1JFR24Zq5#8_rof=Nf}hIA{^3&Lh|p5Ne(UZ9U9gx6kuprrpgX3c0(o z#err{XvF$Ms-Jf5Oc4S}ViBb@Ho6)dRSy8VytDJCSot(Mt!(TX!kJ|xc>t-M8Gpqe zL-9=kD2uUUKMKj~)_$`5aqsR+SH7ND5Bw*2;s^iCzkKF6yUq%{)xrjblyyc=?Y;Kn z8MgDDx0#-z$KSjD<3S4-*;F|8T^9QO4k`6d5?#TMpy+Dt@1WN|CH5fFcpL{ZAEUoZB@wXdP9 zM+ObG5V^{Qgshm~`k9%~%EU=;|?u^)@i# zIi=m}v@_&cpr31pscuX?4OA6M4UBKcIa?dvv!*M_vnAximWts1W7HpzzxSGc9jb1< z9#ZW29^B>v{=QOYx`;Ufm#yNqN#)yEy%YB~V=? zNh(-t&4AbO1ne?G#bYO?Gg-j7i1aX@TYq<`!YDscw6EXZN#{z@#4NBSLI2a4qnk{M z*>K&6dU170&}Wy6UjVl3C!Ai1u4nH%~Rk38=b`M7?$;)PJ0TS`jwqpsXn zmu!lEqv1V!oTt1T&d9k*3-!;58Otnmy1AKL{mA$&fPfsshv7T-brtrwWvx))f8Cr^ zb|cIyG3Lhn;1@O9st^M!^0SZOS(zWAE)3nzK*hIKTb!&wn!Wb5E)11W+xo?*JUMi?rUXQYUYOT zu(it@GCe{$($}Y5d^&ok9JTV5_MF9naP~4eb(zE}1|upIxGm20+Hb;{or!a2#im<( zD1?gf?Akrmk3THwoOTYfQUB+>~ya$&t%nPreQxd$3v14lEbRZ@Ea~Mp8RK9rok<_P~rvN3<9We1zrnlh9 zhI4lVJq15mus=^%Go8KejO(B=jE`eUFSjtGEoXyZ7TOm8XL0G>k91+=rDldHR~qQqz`PfeXk7{3r<6zPURs zr4$E1^!#NK-Orxw`?NY8n^VB{66d_y82D?el!B1N~8VS|BbV!}>tioXwksq)_G&tU8qK5}KM6zII zK1OHZN-INBT+HooGmmBnJH84Ww}zP)ukfQxOStT${8_%@YE2=m#PRuPb)gVIf5~#n#NRvAH(ael#IfzBD3mV)r;o4%yag6rZLxyIS${C^A| zP*gc?p%mZqIDM>LySn9u=SKJQXijW^HDOc51FSJ2s9P2NlFLS7lFrpRo1R#u00jU zV9Lk)5i!SxS*c|J_! z>-5!I!?w!?bv+!y#h6RyO0&Da3>p8y0T}2tyk@-I=(ixd22f;v3H{;<%^ylM+u&e#IyA0sXiVS|UiRGHwR1EjK zGUk3%~LxtHN zW?^-UH);oZ$hEfEzedj3f5{~(x?7k%6O4g!56%A9Ukm;7-v5Xwy>?|f-h<-VTuv-_ z+l!lTxQZBGE$H@isQzST?rU94n6noaZP9;2-(|>=j&}y_i6lrp;UL4qY|Ete)8=%gH4z};K4%tjy=?4`ml+1l zfNqwYE9+}_FYQ7WLbTbu(3B?kc(6AI_b$NVf8*JOyyz4tB*9QpmQ`y0pn8TW;@NLW z{)58?B5`c6bzaQMc9w`WXo01KB-z86SiF?tpe4FZXb&BR2_K!J)w49{8>B{^-sFP4n#ks(9EF4wdlciuK<<$0N&@2P9& z54-0iqvUwFIPQ2F+IX=$k2E}fsTeM;&k(W`)&ORkMsf;oF<8ekU0o9e(^zNoxSFeW zPkxB;^S9U&@PS(XUX9U0`^NdWv@pQe`etBXX+(C(>&gBmnDMS6;GZFVvHCBg`)B}X zvl?HR$qSV;IS^i!%TmX!XY3D5FJ$sVwJf!oxf7U)r94~N%GzhpndDgeR00t^*75%O zvE>{#DzK=G}W{@Q+YU*rDzXL zDZlhA3btO*XAlfi`Uuh53xYxVmV9BWc82r z)jo!zjh22A>1vkiG~expR%0tbC67x<)7maTvF;-tPqi@p>OjSce4yI`@ggfk6&o9p zFqwE1X;D6L6$_VU#tV!9UJd5VavTeVLALbwiU{kI=VU7#vH0`=_mda5ckaS~nT^sn zyc>*q?OhUsQhkhwJH+`4WBw$tX}O@In)kdL6`SrOU^P%^WrO|aFM}#<`dk17i9vTp z!*?Uid8W#YSGH;2Xc61Siy&64J%EyF*R-UTRLg2Bo&I&%yDPFszy#lY^6782q<>Wt zWO?JipMTa@Y?{;ksrGkH=4a)9_G=JxTAVMhA2kL3q+WDggv$iG!x*s>(OZ4HGtw@! zIg6fj?zh|M+iodPb=X7kBCcKq5q7P1K-L~oek~K~CbJ05NOCK9M0Elhd5PQx9PP^^ zQ4Z!~@Uk7)!~A&t zSD77|tKH|{ZkQEL0yBf$X{_Ed!U0MFND%c&HQ+D6$_{k{qelhuqdLyPS^JyGvE`-E zg5PY}Iik&~WbjAh3GTF{wX|;8GEf!}j0{PL0~PG`?9S0~`n+ za}kr+sDgEw@urxgQbUWeB|x7ixw5x3qx)23$x7c_Q%RCDxqS&S z7Ip@-rz~FVCtearSWXokHEgxJH%?@`AxRs{cV}#X)qF37mA;9Wf9$ghZFm zT%s#8S?0Vc$ksb7tTT_5x0+=Xqs>M8dV+D~4}fBjk01h!|Dt!yW#N;tFK8aenx{zhm=rpC6t?ia&1C<-O0? zql#;}jbg9P{~opCyx@Z|GQM4r2+E5|lg_f&4c8{I?13Ozp5}t3+oZgdt4`p%OS$lM zm5CMJ-DEsXLp(;uN?ESVZTZT9<&9?4)}C-UZdZq}#rpnx(n#q+QiJRJ{E$Ay%_I^| zTfeHb#{S&3`IzLQZ{>~=6ScT-J^-3QeE3&Gv1=-FdUO6kRQ1}cR)uPYi(fxi*5c|GbJ+CI(KO(y z%-CJnB6nxUu_Wp*<8(ia7`qJcgwI2gNX@8Nk_8kEpD@H*!L#&phb8I8bC?vzB9HA@ z4&N$c=XyQ?;-M4k>ImOPn>@Oj-8p19hua~gcVT9jI_2Q`pt6dh@Y2!bN{ew5v!N;Lsx`v{Y;{dVO<=^2P8FUUj0Jk^`+VUL*LdAb+4R_~@ zSKJHQmc`MJSh4uUVj-_8G(e&UAuNvk&1i|~RsJx1B~r@CUg-3a@5ff;d2`AoF9~n| z5ZIwOZr-z1rhJucyN0Zcrn@Cpt($c1*@%@P%N6neeB7Bg%XA2+B*6bEMXtP>!0&+f z+3cak0`N+f>qPX5({fE43#lr#h%ZJD)hiO=OSGrGWy{CqLo4&yzP*y=FA&}bg@9KO z6nHQsIsulswY(>gBT&NYdg9JTA56WOGIe$w^8R*ES7pKucUcpI6{lfGt2L;Eah

D3LU7s~&=HGCEZ6|kr5b9F0Iu-$=c?}U~TzE_M>SGoLIFH-r8ZV0p0Df}4 zGtbAia8;qZb$(#2Wbd9@b72)k{#Sp@R)+vzmKlSrpi3lAG@GycH%RkS{oInrjGWx` z*0sBQBXS0~8B=B2!SrEB*Zr@M^)lr|;==Kx2dZH}n7yOP?Jlr}A<*j|rVqel4=*qN z4jw`qa1EBOKsV+pg7|O?I}h4@(3MS(ElvVamY7&xbG1yTP|DqnuK#kVbJgXg;|=-nK1xL zs$b*%k$!)yWUOtcraGkG_35~6d9t`Jp{29GkS$6*_3z!1KdIDzk^a}->n-{}=XSz; zK-1Z7{-o8?%=*A?KN@-*!&SZSI@D`87I))Xh^YGTUhTz~DgwViD|mFT*KpjkkpL|s zKm64}pDT*Bi-WdSrS+Q=^#jDwA~Fm7qiQeXn`k)s-{74H()fQ;SElojtDSk#8Y&X` zDok{$4Ml!V_RT`}u6aHKn}>2D^F4Xw7%8ax;zW$D^IPsg-747n=nZGb_#dI-LhzAa z8oRHvcyRGUUu~hQ^Y(fJ z-Mz5A)cgbTldadakPp^TVEf-a)p88;?~5?)2iLFbgzhEzWc2!m9o{6rkNCS7rHE&g z#+<;y;x~hLuw1ld*KHA{S_>@=`db#n{K)Iy z=VX2k@xvy}+j#F(p}shW5Mk;3qS|(tai%2+nR}9+RP2( zfTa>rxHkB@F-cpeyhLA}qs|}3>~NM&rY^ZnAcB)>W<6~<6X|!cv|#py5L_}C?xk^c zy*=X&)3|Y6vP6nOevxUD4hN;8aoKVbaJF}}s9fETQF-gh3M?pNN%Hifa+2D-{e(`A zt{GY9Hn)?>U|(NVE5 zIM3#HZc@KydMx4833Sozkel4KvbUKl`VMn}6?e+Nc^73xP%-1STFyk~NZGdFE-4|x ze(z$RFBD;(lWD<(Nv5As#p{U~J4@kUuMTmk!>ovcg1TIf2>K)iu{4pb_Hlb zN5#5A?FpsVX7~zvScPIM2e~%(utL3V(TlS4F9M^815YD@vfZ?xYE|qEnsqD_^HFN0 zu#h-`$wE9ZF-NIh73`UPfmJPH!_&u?IVlWkRzlYLvZ^TDe%ff#MpA+`Q%^a4`x5ih zNn7MQ96{yS=lp#W%jf2ty-x4#9}fu~eS!je!r0J$75^X2VJg8~&WkQMBq`SnsQ0MQ znjI0oXP*O`H7`b&ducd>27(}kyqI1`i}l*Ty6Q<$p)nN@_zx8aS&n39bX>uiHDyP% zZ1u9~3ly=%ul}fK1y;#RaC29mq=*#R#&m*j;&{itRt6gz3*kqjO7%6;_O^)tXTB^K zw$$-OYWck45sBfymLcBI-ysbXC(otYI7iOVYY4;-Iua|->xi}c+C9!xB`~%!$1_6R z1?>@}RCi9#OoNk81pRz$lj~VdDr%_o8hnuhJ*hxr=l>pg(?!bAKz40#46-u^ z{JLV~=Dsd(=AssJC#aZ*5gL`bI0!N5F{+a4%m)c0jN9JwfIoHID<&EPjEQ^VCYTQ! zGrdLFCPvYDNuJ&R((mDX+_S$>2s8NpOuP>zNgg2o->#-|Z@As{$4`#HUjrA8!s}G{ zmAv^6e}5v}=l@ul3ExWgDYrG(?ol*OSBFj>&)H0t-IjEYzPU65`n~5#5g1#8nh~_W zECWLgOVfzzceTWKdcbA=l(8~>9$1;z3-KGHbYf8)^DfH(mGLKi6Oo@Y-?MhS_D%Ey z6I7qT&_&uNXyi)KqHO%ZJ+?tby|`^hZQI$;`V6Xqe26O37o!b_iczws;Exev@S}|R zQXbj&Ci2tb+&x9)0pUaLMT0LE`SXh36-HKZTZ`|Hr2C?aYTrua!sf5%^!UM<4;2@| zD_g&I8X_B3=rL;CJoO8sC4o zhVm@(uftl;P~%+y&y7%CBdK1D*ZxLb2?*=1UhOAtkEB%(P?9Y&$u{)>X6rq;>RXDt zn8=`2_p#o5vJA!NRS^@-IXI28;M1-VPJ-eA;`eYx>U@dg4}~Yi`G2j)Wu{fxG@z5q zGg-35nK={3(T91?Kb3-kEVZttV7GhExpGZAdxFMNxBv8h(@F$DbZS69sNNa}{i2y; z@@$NJ=R*5Re!Vnp<+2f(x-yNprY`J}zlfa^?wcStcMlodT-LbbG^nM8F~WO(wL39t z8E15MD%($PHPk$AKGv{dq1Ga~LC*Ibw)~(u-^)dwc;frVauaRrrLnen-#X3=IElHm zN(sxeMgJla0o0R9*~gG-)hhJp46~>nFr*m<&c|?e5F-$+z%IE#o1Fm1P7-Ky?^2E; zGb^)OQkM>wSil)+uY76605}9cS#qQ}6ap)l{eE1;i%xw-yL6#jr2P3K5Di?926t)&iDth2mpxIq`GSP^Wl>o%Fjbb3 zXigz+;EAZfM7cKh_4;1W5WOo=TJR+xL#J<+#1Fd`pq()(5w2G?`6BzPV2WIpBQPEc zN3D?Axp13uLSUOg><^lekp|XqZy;?rA(RmpP4lWrMpjN`cY~6G{Ho`_O>;dxS*!TH zOJ-V4Sk<~2VX%D)HuwZlZJ4vS%&inT{s+z5kt6YST2=zks0zBiu|eVD@f@1i5H`Sc zqJ`0BVskg1kL%{rf?H#nQR)OnGMcx6Gcya^D?)3ebc$$bgm1+ zF1=yXy4{|xOmZHS!&xq?B2KPR8qBIIr;uw;-wqbn2@;LEMXf(C3s;cK+yQYF6w$fM zIWp7Eo0$`pl+=N>Yxlr3Lf7hKiKp8yB()`Zsj~`C%2zB7JC6)faOd6UVRrUnKAl$>r!X>Zc2jr@<^-gI=L`#e)@%wH?yf-C5fSg}T z;OscTYt|;HM{Tb}anxEzsD1$`Uu6k`XQ?i$P#DnMkQ9*YukUxQ z0}aa@n&SsiW~TeGZt;SH_@w5JcIr<-$D&TKn}_Fl;id+TM-(cbYJ6l00&Uvcnb9m;_C1W63!!GA1BiGdRYd zlVL>Apa_QqNQG=f(N>q1H1^r_W4JA5Wi)|Unw}e_U85kYWu91WbkH%Z&fXWL?gB0V z_tN_^1vIJZ2fnlU0EVt#yc8G+!UuwNc^;_4QYz4qL8cN7=9 zdS)6uat!Cs%yKd@vsdnD`(v3UA37nfjtgc*0}4I*vt0FaY57k+xVI#q;5v4y>uLFU ztEwBAwk5{cC&faM&$I928$xptPuB60yePP7h}wZE&8RkxPb9Eeb2Hk`O}$9*X|!K( zLdZ~8vhAGIlP?SwlBY8uIC1mJi7B`kuec5`ni@O9SRX1`*ySN2u8k=G*7s#o;Miv! zfkg$+M+0nVO&nuObpsJ$AcCxNQ$UwtQDlp;0rKds=9yC`TB;pQUfLlUCz(5baCUdM z*G%%x(|`WWV8_p-FSI&*;7@C5x%<4{i2pI~Sbg+ygG_tj(%3|%?R+d#?A`rsZ%-2J z1Z*O{?eAL_9Y;f0recEXMW2$sDV50 zz_HF&^AStI+m&g+EVTJ6wP@;d_i(j)xEt*RN7p*VNp3MkyTQ~}6}dMTGejF3MNbI_ zO7QUYL7!aoDAlk^twtX1O80%Mg~U1JKcfrXzm_Q-mkqyn%>`}EQG}a-*iXIEJU+IG zPI90@O6F%=)R(5>vBGJr>eh7PgDV`g32Vpuww{;qCB3S}TFc7Q#0H=ib}s&e=MdTS zzbBt2ihb+-2$3a@9@pJ=)A*8-R4N`cGKr-Jl|$rPxlDYki-F|bJ?Rv(4-_Rs4i5nQMg{v&u>0Z z6I8#J-LEVKDQ_>Sv$)o?oGw9VYic$LMRN)n&PQo0i;se%`EkqFy795j&xN|frn^n- z7PkB!10u)Mp)U-Fx>BO>s>r#vkG)aen7(zB2W{nqt5u9Rj9;@yeo`A(;+~9$(-R=+ zt)^$A=D*~x;!fH0hl1hRR`|)s<{NKdCc}K4c5)P7gr(JHbNbl6rQv23=AiPB!gjf% zM33qsmI{?eQJMbZ8#7-OuDzek9?!TLrC#;BIud@&CYd&GyzJ4a^&J6S{%wRC40r(B zV%|T8?Jaroy|X{Wz^LDW2s{`H=)Jh0!3Wo-HLE|C!)Fe;I}saCI)K&nK-v2d1Ds~X z6bXq`(!+5){W=@JB>6=WIC?4+*1{}>g8Hz=9{;(qX|;ZDb#LOR@`qFcb#-P+;s?MR z;Rz1S(~B#|W)^=rw!6rweZ(eWz9paIvM?HIZbWP)lQcYi3lqW2zes;9XEo)SRfR1Y zkL=897Ne;CWAx)ujDO{r;zG5@%b!;7}jZ{n_ zY{~x0du{$gXpna5ur*r2yH06~BFq19({=55pxk8Fptd>({>3uO3tothw$6}Zi+xwK zhnqDYp6|~sws%QXbi*1+UrmX^d5T;OS1GEJWMSEJYDYEp-CzCW!L4{CW99Bk#n3}T zS(J!9mu}SQ(hi(ZLjV!f}dDy z!qW%GDJ{Cg)?R1D41Q;#{QD#?b3oB%x_hzgU@A4dQMlfWNaGY0T`3tHZ*FBM!4F@hO&6R z_K7(625Dp(#|BpbDM;vv1PwP^oH$vQ|98J20)MC@rNtW6hsIqKk8fq+VJ`I; z7Hj4iL$qV+rL?7yL4ZzVG%PQ_**`iFrztUQlpR6sb>MDi1Jz;A<{e+Iu}tA14*p6A z%*o9jzMWhCmYcxL?_8>9NAUTHKc zCCO6>KQRGZ1cy0}cD#jSza5CF?_*++Zx&-6ozC=X^pZ~H6VkW!n5pa&Ho1?mQYU~p zo9RPWJTTDWg`Kuvu-J_0#dJnh!H;^3y^ts%4Ic`uMSNG-BO^&8yii_cZ}p+?UJmud zjj_G<#gxWM@~jU(Mh##~o70 zO*s!<@dv>hg}{R!AQ96~kG{wdWyY0C(r6AJ5tXr)6H(Pd!c%+gpbBPoVtoy}pUYG} z5v?yAQFMn_3ru&6U4gk4m0uc&pRkG)pT>db6mP|~sRN;}hQ|H`G6i>87s5q6pqW$t z%@@nxeEXjV1(wsZhjvg(@SmvH79+gozoQyEqNhvd928>q4Wn5n?%$h7rNH-GkTrmz zs>-a$3%0_x9k1ME6k!Pp0;Kg|_=aJE`fZYX&PznxRiY(A4;YENP~-<-yy`os7$Lg{ z#;U%nG6MSrSsyh+`f&2}Rn%6QZX^S+_zjYM(ct!r;;~y(w70prak>ZJ^r58W1I&Co zSy+1iUc1Kk3UWhP2}@Cvg*m|9o{B*Vm{+(5wbUx)i%pr`{z z0n9H+xT24`zE}s&_n=(SB&W(UJ^^hj?xB`ezo!u2>&L4%$Kep$U4;N|XVD3I=4~#@ za|>|y@yCa>z;vLkmRKG5siVeG-sL*-6UpW-(dsT>?=Spp{r{Z$9wjHAO5RT8#&yWM z&|^(Yld99|*zbXK7uccVGCt$_DPH8hjkox1kf+Fxif3k& zds}2$0%n*Lt$k+PBC+koRYsLP9M>)2O9+2ruI%g!ngS%t3u0WyoGlCk&St#9k2Aj7 z&31#XRCwvn@bl=KA04q44KOY&y(QD@*adT;)$_89UHJ4)V*_NWILseZ#pXCT%jZ3CKy_`c@guV;o4^)iiohxHD;RD9`Xerax{`7-QJLj zCBDyMpPl%RwO{iGGLT31u>aQw!@4BvA(k@Y#nTQHX)EJ`(hoI#uX z(9u}SP@$~NvI!B?obQukW`sBy^q5x_0LgK%(X$!G31}p#mfDQppz<`xpLrEb@MxXl zO@wo*&U%;Fa{|>-35hGy6b7J!MCo(KwvrmWmVLQXMV8!-5x2^QPr!?* z!Sq@o|2Vgku%!0&YODmY>>1&0-x${2Np#0IldU)aKBbd`L zW{&LAfGTw*+%#=ImG8?l3U+h8J@jdyeMt`82%Wu`hqSDdiIonKNk9j0zB(1(E-jon z^b*#13OoGRl0SJet|2mVJvlRIe^lK18bJ(j-3 zKa3qd&MwbKiMW+Df{Zp}xL|lO4RGN^uNoODjglVr`(o9??un;mVwEN45E3 zdtgwPc9y{gZDlz%6V?CjafeY#cL@ndvWhUS zY7shhx`ZrC88~;%Hg2@q_tu%{qS0_*w$m}Wnd%Q?m50QwNuNT|nL+uh@1i8$ni3?H`l@gZsCa=kb?+DSv+Fud4#e9XJ7>ne(lVhA+*W&;Axuw)hf(juefp zeug=4=%{M*>w!L3lx{(Aq(KKg6zCVzTf)!2D&6}%Elj2RLYv*W`Rjk~^yTg4gkmCl zcaNP?+LogmL<%NbfT(2dYM(>#=34M|7{SfEo^bE&w7Cw-nbOhTK+ho_!jH2FBYDPo z#2~8nzN|yBhZkP|EjzU4puCYA<`JV3DfZ3^^y9+pI2mkvbBIR#a*tSb@wwT+l3 zlR2~NLweZJSt}uClGMEL6Y}brarcN_U}_3RlaydvCAoJ{8B<^`68jaO5;(*0elX;F$G)QLU0mPVYnR)9ttaWv^s# zKYg9QUc4Mu7vwrQ>-l1QD5P5bd5k};LdWrgpM28eGI~I zf=c(wU$dL%#&X99if~Xs^=x~r2VRqW;E*wD*zhl8=*d<6kQy`RQQt`!(XUP^Tjy{V z^+IyCx?`E&3flhSOuP70NB;Ka&#@gPwE;|WQv$p)Wo+bl4YLii__PwWTljj)$}#bN zeW0w=>q5P4t3M15sdRspe&l*CXzvf1bFX%x=XXz6c(?8(Bfq|fvFN_VJ90$!g6Bpz$`}14hHH+^~EI%&tquSEZ!?x{|T8xiQGw zJ9Gg%E4eLr`{VAL4E=aZAaaVFK6q+A1Aq^1C!36c4ox5j^5*}b0OY5OKG7RDW%^eI z!MoBEDF<>yZ7ns(qbuH}`7`bWq_Y#klxqY3D19GZbAA8EM}MO8m8WyYRWWbu6)PR- ziIMe7H%NCw>UWVBP?zW*;Qeb!vNbALy4sLq88fL837 zJ?E%&i*0_Z?+4XLscUxCnkE;3R!YKTb!#b%V8PsJ%!K%-$cjo?bWTrLRd~)A7tn|> zE$YFofU3%pD%>pt@{&(1zLnL|x&0O^Qtb-bv8F^EumtBRS3B$1MH^35MJFack3;Ui zgW;j&NOFhS2iFGU?Ip8LvCd#G7?%dGWFJ8-K8aNxGdr1Gh#!h|#3%bVy^)XDT zsjJnAb9#H)_fE!0%{@@ht`b}tgbX9gn)Y*^+*gFPvL@4)!(g#{w{biF*po=&b?C|7BYsoqc1OyU5G0Kol)V}T=NDbbCKR~T=*d4N-;ts z@lU(Z7ez~)h};W?7(V8JZv`r&uN1Sb*Jnyi3=MF7U*J*r(mGh`Dw5fb>7?i6I5knl zt~+Ny*;Qbf52k4SGH9Eh{!9xTM*7{yrq3KP?hq>I<7JO>T$aX$(pGsJbzde_8~ZRj zPdib&o?{;bQc}cO#vgn;yt|`<1%nk$2ro}jdQ(rNZAgAdv{&(6cydi6@bp?2k5I$6 zvebzY?Yd$LzMJF|!|Bgo<+cFtEN+G_YVpDWF3xx~{EjF``A(q0`b^6A6g%d+V91^S zIP^onQ}1=#HTT{S*_q2{{NRZJ{)CDnzS$@X3oY*P>KwLhH|k)0y0X#DqEmqO`9Qhllw<(U^AW2c)~{n3nNK1|S49|nL`toSuK8P&(xxl!$3k5{|0 zT0~=GI#?y+%JQGiR~OyFpgq#(Z{0N^NULTTDZLW;OA5KxymU;ssTHEra6x6EFz)@3 zeI>nLOm8V2o4?E|O|of9)@-_!uq4)`bQcJRp^N5z$OqBac#aZaqrf#UiVeyA`J0JC z$#6^CVC9o*pen&fX-etG9h4M$M{}EI&$aaCv&$9b3Phy*9CLn?P7$1=UTqv~&Ba>&WLTYppBH!BXSSPlfVK zT)CwquNtrg4|&^vJ;%+C&DsA=3TLG&9A|So#rLV!;Gyn`56mG-PVZvQRH27+@!Dyi zqT+2AZF16}9Yy0Fi;;+BZXvIXGmq*{688P`n43GcoGRaVA`Ca-zLwzB*|X@YRQ0T- z?M0LpH8$`i$D2~1(9$HP@SLLKGIlLq8gZ2(>{-=VrjTrG+Xlp~?v5(@F*$u6W>SA# z4c08)CYsfpXvgkUx=a@72Pm$-Av%^B&)h2u@64l(e zSRunN&9+JL9b~ygUTXAI+k3Z7xf6_8^1jsTie}qyx?o`jN-I4{?%!N=V@=zt=-;x6 zG&!*{X-(aLfH$6sD7EH)4fC2vAK0F6TSR;Ixi7)}cOOm8PPb*`_6AIAY?kq&o*mp! z5@YRcSXw9D?&%+$onOSiODP>$%mZdhFM60}^G)&(@pRn3&yfq3%W#h_=1u$zKI#PM za~jJ@B{-9U9)$q-RlUAKD}VfzjG z3k1KhgL>k{qr*S8lkUrS1#jhFHsih)o)4PvQ=<*DkyO9U-q>z4sCViV1Brk@^n|B za%>}U`9L)nU`41zJDzqO-u)CXAqgptB??C~zJd>5YbgSO^~HebFgxN?)w+VYeP_3$ zD|@NTpgM?PT5jYscoOjB1vD9mzAve}g+)qn4c8Q9D@e83mjJHq5bBl~-< z_4@c`gkkmji0|eGOVTu(*k5Qi(U_LU^hlqY;2Oy{yGp46eP+*Ke=i?a$}S{OmGKPi zkK912!hJ#~#@)U58WC;9#=PMjTt?W-PQUt$Mab*x3osEq4Ox-K(dP^gCvt~}9!iGs z0BOa^(C{M9?K}XdA{WW1C~fTB z9s@C&NYi@yw%@OrlZ!h);BCns7%U}Vdf9VGp4r&luaRurz1h_qRw>=yy1MZV$}=(^ zg0du2rQIJNodZhBU_k~>$vYI*hsvb+wTMR?bOF2n|ccPM$i~0lf5IAc<=k`2dtY z4(tl%X7vS+GmzTu%Aie}n4dGQ7fiOxBh=_85fpRNzH5kbUC0LKBM{W79H14{@b6X8 zm_TVt5%<`?5fbWLO~i+Ti8gsuPewsYgn;+W;O^@&fm}$8YHyYAcK9hXNFsX?eL7$K zu%+;QH^N|9W1o3u3^3Qr3Vt0e!-m9lW_wIbGD0iLMqm3FGSIV?m9KvP*eZYk z!5P7e^7`a#DA{vpTG7DUd7q%TJNbreIQy}=1R>hVTX+Rc-Fc^kLqIz1vFAH-gGGkrINnV8MD%Tw25P(sbAmIP=qHqB zN_^~E3UU}b*>&oOKwrmWB}P`@#$jnDAKx80UHoxd_LggHH;gii-^OaivC*+5q6tk7 zTRuz5tAfDYBMo}XErBFO#M?-{-LjSE8FrdXiT48?a#Tz#^u?+)*AchF(4|$4RU6bM zx_NTi!xUx6-Dq07YhZy#yI)v>U5>eCpD;ACvoRPyP9A4>fv((Lx-{7NN)m9VaTyR4 zKweMviytwg-8aG;c#|hoB|uz-#^srJUfVN%TBE+XtFf{QtLcT1-V}g9wkYDa>mA!O zO+k{E6-HZ$)ZPy6*q&jo{`kp?q-mS8wMb5}SEE-j9lF{ggM4E3a5lq6KgAt<_ZSoy z+$XNs>~m}nGfiKB9+4}*JWa%lzov!@* zb!Sml_w|8#Yss9)IlTCuMYBGT?}vxHOf_Zcf+@8g1Iv@&?p#%c_wP7GqN5|9U9K9v@xML0vp3Vr) z>u3WI1g~EmW1koNGu7+Qn>Q&K`}5A_1T?3ASN?sOgOM6uG{0!{b|dENllO9!^ar`W zQ=X_&Jx=LDIW_LPV0NT9MdD?92ZnHK{KY#T{r&rzcS=9|{d--0HGcrV$NuH5%nP55 ze3;f;x?lA@Rkr_m)z3*QnE|Er3dGQqG}oUx^*SZycC`L_d?))dwF-1b0ax%}LcY4D zc(8XruyWB3A#OvPD?hjXubNo&6s61?L}99_Wpq&+5vh}HQg2S3Qt~BBpUl=uAZp-h zI(2Z~YS9ibWoI>^a(qh+0-X2zzN#uv3b4J0?9yJ*r3dFBo3tF7p8Sk$rgQ%<_D)sn z_olLASUcn}{V*eBgZ7XvVzO80fqy`~zv{$7y;C1?0fhSBD}RM@LA5u(!l_gvO=~6G zy*avw4g6*76SX3Ewi4;92Qi$UrjPQWY{*BlH3Hl|MEw&(D{cJ(WlP;-PE@Yi z3!lwle%=^ zZmA)=wQ}!w%cv)*M^Klzpc>YxZTBMv^$itO&X9`!+-W?rsw|z?Wv4>~vCpag6eNbS zs1X)rhImg%$rIHUED4CN#@96ce_hncp)o0 zT74yHn!lumvEWPBa^6LXisLlNhOcb7k6;eZv77gc%%j>Lds3Dx0!HYqF~5))P%&tq z)mt8&m%h=PSk4>m(_1aKFdb%*OPBM=hV;Q&^ZW7Ig2|_vCrtOzUk1Qvv~}}^e@~_% zg;gaeDvFjg3DU&m4{G~-_9r7d3pJ-PneMk^dil~b^n$G>%s?MV0FNq7av()Ft1^-3 z_Vr8W{N?UFV@-k0W|nmPJwY;YDNSVTX%+LAWIdDR-#mPZMup+yT_?zaJ4;_^n*c-B z-4L4|Lo~OZ=Lne$tD8^;C!mNf+W)fJ>d!H4$+m)9C2^9eA*FguvY@`+hG_Teuogfg z`utLJ2Ttp>&*??RCQ32ZvgsZ(2T;}*w6J4mUrvX?J1mXJdeWeWg$K>F{ zVf3lzJ{-fB;e;cs%oEgGE7ac!YjIxvxtj4?WQqdy&d84Ot%BA?6&yu*N?-jt*kP2L{*Fs_bT@RH&TI!L*h0H$(?JTBO@!~ z-$BM!cepQp&nlvE!1f#;c20c&~~WV1Y47Q7vEP}TJ*SdX>#LVILB$mdTT>UM6ExKn$uWA$Mq$ZkILL& zedI4Q&Ci*J{4#xsW#h@!PQc>4LAF1OcY&L5`>dU%%@W5_R?f?4i)`o7olo0&uf&JW z(}RvQ`O7SqyiX}koF(e7cdQHP_R#C|Tw6T;w75q1;{k6XQK+48RWM&#=?^~ z%n}*xTBV~TxorvT%!L86F{p z4q~Zjg~dOys?<*H2QWahdTFeWTk2TOaBZyy#W7i4ph=)q#~A9cNj;#_jhU*_qV;Dt zeEM7_dlL=kW(y@D`Wg|J3ZiiM6`cFTQ%P{UUVh}~RlRVZu1#yaT9ZeW%#}d`W83=D zAX_sNRom5gV&}>e6JUVi*0?iQLjGr9*Sm(&d9|VlYV;!6T77nYON~b$>4%f% zDx9^KytAdYE4#O`;TU(f23b&H6)G-LF1_(_Z3MgT2RyYW_6Zqd)Op1n^5;j?nO~XS z2l9gcCKm4J&a^~gX&V_U(8Sd)*YgnCXuQT&5cQ)0Bn!n<~oBD{q69D4uF5%s^_bUaVG;v3~MIFfZfYlVZ zk7X0-T=y$Y-UeNRtZW|sQ8m*{N0$-KgxJ#Q549(OyZ>^xvM0eFEVHyh{C+Pwn~XUDQDPFZ%g(-6JQ~vBE!RjosvZN6|ZRW*}#! zFG)xK-A0*ZJm#@2bWum;n@hrf*;|M#)a$&iY|wuyT9<#D>C^ZBd_UyPYE!EUU*U@e zovY|VW7Me3?AA{PQNQM$K|?qY+_rQYa)ZXC1-_569o_pa-v`vsbZ}$4ByrGY$aO4mFsru7TOtO8VFqA!Nzf&M$06r)@N z+&*jc&lw>{N+NTySrvo%pf41KaN^d_VJmPF4P~T)QWJQr-FDOFPWiiTr(kK#DVYp(dD_@o_{-rJ>kk`vzEXyRRO?$2G&GO8 z9XJB|d6uXxIOFtb&)#RI8;TV5mBI9>FA#eH{-tW-pyjb*lh^YC#tOnOK05%4i-C=V zwIZ}cqc&MAnqio(4U|&EI!Yjb>PB^7pRLSZ!udOpl4O{&eT=V?Almb{Ubl79*2O{0 zjOEQ|MJDXfLEV$=K(Fku`a>iKUrMix%zb#$tr+W;sho*M?wnyn4o`;zXQ!C7eO4GeDmXAExa>%g5ZMl*NwGhW9>yF99_c*)ONopos59`b`J`%ze}Kin z>#6QQ)*Fki58v%QRt?wx?b9IemQYqbDo_lJYp!8{Fo`QnDgJUldw_IiB&8iHCfkO{ zXl6$5Fk^R6=XZ`%q7La9K`og+$i^hp#lni*pch7_GvLtWXv`(1N|qI3%^bIuKso+WsGBD%u-;>JL?)Lihy6ruzy=Eo!|=8dw~Fp=aH zbLGsFGOzAyx9ehBAuYY0b2CPkc2g_zPGjRsp*|y}QtLNaIX|cNhD#0lQTSZpRXW=4 z*~Ik_y0EryHU)YizZ`^{Ur<6_N81XTXY=qL?`|)(~!ze@6jbExt7vgYooO zB0~m-Zc;??vZXs?;P=vctAad&BPhGN6ETvWh8tNzfTH$LN6^NCyL9nsGIU*I$~zO8Wb@SyQ8uCn%X13m7R zvGB&=Njdh>LG-rt-xy?Gr(;?26>`Ixj&Wwk8|EecO=wrHWs_7QGpFvho(v&HcVf3` zrH{tCokH?5H~P2SN>T?L{tBw=DbMBJakIoG0;CW`T>dAETyY{ zvBpyA3mjwv5|pjL@7mX@_g8M5wJT@Vx`4H3h|=LBFVR(5gaDYpJ}n{qH!0Ndto;h`encGXm82SgSx-_B%+T&3U(Ks;g zajHv{Taoiqoj~Naqt_mvP#&xyq{6Aav6cQ8N)3=cqW16sXk`292Q&Ee!Q6oeA3Vj+ z4n2}q#)r{4uB!zvQb}>q62~eLVcmwt5mT&&yZDYOhp=`J9Ig$7Nc;Y|4 z?0o@5rq{nAW%kw%=L|i(*xROwx<0*SRDaZ4b|Yu`%b)QhGyHT#-b}YJr8P+Lh1;1RI3anbs(oc3ewiNtVkOTWqy=_kwt=B8gum2Xl)9L$~`}_RvSh`w%0^Td_R@l_Q@7ke84X*x1 z334sgjEh{U;;X&iS$e9iJs5K_UO^%%xPf0tekEXLQ5RN;Jk<6IA>UzT zzsV5sB@c@k5C^2k@fysRd)mXSYA zgD>_X?;{`M=BUZl_CBpGV}^Zd?l#=mR}u1n-}*PYE>}1Xmhlge?L zoYj81^M1n|zDy!Fe@vOyLnpC6-gS;d5{e@CA`55p(QNXcyaRo?*h<;rN{G@mIxdoL zL9cdHWGwx1BVr#iafl~LS?0SP+txt(fVQ#RxnRNdAYolkXl$~P9c>qVCpa`{3g|xG z)Nnbw$aI{0Vt`7(Rk`-um$PWW&xNC#>Ip=ZLmC|OlG-nHsjd{GHW;JVn^@TJ6q&xj zP}8}p6B_WP8h_bFI${ImXh<}T_Z=LWvFYa+VJLi=d9c6?k_ocwN$RC{C`w=ntqRv& z&nK3Un~V=#_WCjhnyvAX_=t05_|yZI>+Fetc9_c3jAdBW{GWR)mwh{;4VuKd;}gS5 zVPHpXrRyW5E|hyr6kX=C(Ed`9vHkr_WgV7cFV z^@hy-Ym$WSz)K#-A$hV|wk_Du^WBZgtccbA#W`A-{wLSA4OZ{0{=GizY$%Nj*dd%N zjO#Hoq9&-niCu&ZJ-8JRe*&HtDj0&7rAt`U{KvYy)HZzb&Zv2jbXOvk&FtyRp|&1tgf#Q@ZO2t3{Y&sUJ}>ZW zo`0L^K5i&9sstrzY+`dZEt9D+4iVEHT3jEj`EsI@ze{swLkTuU>-kPxMc?xyC1Iw^ znfAi@`w>;dS}1NBj$caJ=go^Wmv$CCF2<04@IB<+CKnA}t2D+eenjyI!sqrP>|}rM zbGs#ATv|Ip#c=S=5>%D`9j?h46XzfT_9>4vM?0c9qf-2|e=E386;$Z4(P%jHA1~0s z0HL>AyIFmU!f7AV*ZBteHl=z4=qR)XC?33(!`p~70~$3CZdC1QO0XZo_Ou+;#D{Kz-TkGS`xqgjX*E9Ma)T_deba+_GQ}HH`?!X0nm%G07GQ@1j4l z(8zxeE!!^$=7_N# zTM99A!SuwI%)h(AoH>5ZZR&+h@?2X#*Pg|e$m$;~HSiX^EAOP=`UKM2jH#^#g(AKg&;W2Mm0wy?l3f$CW4*^-U$fz+~bE@ z8awa&z%543njQhTc?6;iRAGh>Q8k3j0ch($%8c$ux)~dnbS9`Vx^0Gd9Fs?;i?>63 z>WSbqGF>Xo@10a^K=|)F&yGfn)d0(dP`l*T^0966qyh z+tNsjhoB&}4t1$Gs>KcIxgC1kH>OYWpqR5o0_s;LZ*;PYB;&O&8ezotp52V8k50w! zrzFuz;q}Mu8l>dqk{jK5rp26}XCWWA5y$S|thWZQBgk8kGyU=VY47(i*Wfg%RA2pA z?Mi6!-uDz_0qc4Iucvx1{{8V6ALhl(|2N`~c}Z`p7v8TCj@H(QptwJdS^n0LFw0XO z`Ug4iW1jBCVM6Af>!ARnck7^iJq_8A*P5kxV;1%W(yaJp=Bx-(NGqcs+IM_482bp7 zh&qs8{lN?fnDxuMCn0U}e)+XmkP>;Y+>OPzPpfJ#0?}_&*L4?7a@jiS|5k)?t>+cD zduL9!&~|SrzG%cKTX2++4>Y&r-%`s5{#_=_|deG@L`mO}Avulu3gIHyCo1 z6_xOr0fo@F_gIW2v4u(&WEAC_XoRbbBI@(u;?zKk>4U*_^!Mqx#JNk@S3h)Em&US$ z1Xd{Ajt_n?K%3=b$B*1mI4O3Oe``A5YunAG7i&`wnC50rx0Yn)28i9i$-=rJy)2Jn zTd6O`yJBz0IJYhL9VTKU&aSn5YD-Tx$fa&$i@VP##}fqjobEH+YyQ`>VcsrTGc92+ zcy2(465ih_r%Q$Bb@aCITBUO-21UEyK_ zfAewfD_Uuo8tr8Ki;D|9lRElK0~c$tCEIP{CckQF3Li@qOmKtBA2UWjF#V9p$t9mf zev7dSDco?8tZhozr`%msTCuei;Q?FYX996uKGptdW?r#JZM{Z+k(=b6Yc|~|y3JcX zp`v21X9TO=1WqyrQ?~ho%v!7xZqIeCc}AVw9+Ba2s<8EN*ZTVwHJ28yqb2GZWzDtG z`&**@f)fPj=jcguN7IP8s#oX+LMJ^q$RD zLQdZR>Q4PRiGFxgru1)4)51T=HtyYFkBIhwD@h8Vh|0;x@l}Rx3`V=DaTnl6ayM9R z!P144IzN0O-rS2&g=Yz$4j76ZRNlEkD>tI^)R&4!-Ih1grSK| zumDsB(d@ZLAa}GZh4zr>ULRN`V_qyqLNX&qaU0L+&_2t<=2wf>WvNv>qoUpveSOz|~Ymqxa2jiv` zbQFH`>f8GKesNE)BSVBF;}dTuRuwbNBKGWNii*7kp4i-hJGaIxM|q_$CXv!M>Tiym z7LvKh{z$7Pr`QjTLU#DyskNq4b?`KNJ|Nt>X6%Y;jY-{^ouEX|ZKV>2=I_U_Y&z|Y zi(N@YQ*vrx_tUGXXJn7M4tkc@Hz#d_k#0AhUi5NUVz|Xz!~%$qma=1F#ufP#4`;yKeS`3X(-oT8q%%1%s_@X#@48f+aH8+4l%P zSU_~phVbUO$kqw_yH&>4Pot}VY9AAs8{FPd4ywYOR+xp@7&pLSrusvk!HBPcUyaQ(8N`RRD68A zgNk}9;Et6ArwOKS{y4LPq#Qea3rKq{OwSJfE%#GYo{Ro|4! zcT0%7uz2LJrB`*w*HjB>i^{Mq(5mDP7yQlOwbZGPT>Gw(;hz%0&0Cz@bjdV$S|04W zb0HHoZL^QMA8j(~yUaFO}c}IlUhomlDamW#Ssm2NFji@vvL_1vzdj<)K zZW9h#=FTrXfi$-Etrx6c)sc(K)agk%lYF#m~bW+e2CGX8z#FB*tNzFQ+^n1S%-F2m4Ps~eVsFb$pV_}=!>=2e_|kH zzKJv52ggP3S|nNYxM_ZO8uW=Dkb7gaxK)pPJbnI?ZKk#8BL0mUa3^(4r6KDV9T183F*gouGvrP ziqoV51Hcs+U;#J&-nw!L7lqn{nz~tix|v_l192C%RLmhQi>X;}0nh8)7p@9SZ>`i#6){B=xtXV%{_*(XQXSccE*eI?vFgu4Jw^?pM%eF#i6QE16)ZGz!Rg6w`2giQ>UUz5 z8^`h0(4p0gYD-hKh4zXOORGFgq!XWDvlI)hDE2LY9H6_D;LFco2W*m^My=9ywsytQ z+U~W0dP`iTKhs&Z=R3V*{wF(Awt=2Yk@4+6AX_`R_7x1*UUX&OKMvHWctg2?CZk3I zdWcVEScj(v#ED}E=j)3Msi0~_Z~IDfk=M3v$n+!MFtUnYg{zP)ffp*J)aI4&!qnkw z=vnH!peoE?h`NOx_3yYNzyaxU45E3fItl3oBhBJlmf*Q;akpe$QM;nZ5Mb>Nom6Ks4LKG5$-jl_T^q5 zDq6Pw5$(U_Ig#46xho{b9Le-|qqpVyImequOH6Jm_^l==i2_!FZ%(vmX|B3?-I#!j zH)9fzcFW6u#$v;@6Hr@0u$U6%DJ#&9en(7DFnOQG&u*A4vz2|P8qG5+Rfa)M^VxW< zCfzs*BW_K-Vh;{ixZL0-R?T7`h?Fh*bJfFFpfXAAp~NVQ#n@_CdW7l4c=7W_ z%ml$*v0vwi#0TnEZx!G3LFt+s@X=;>?fYjCrsc?`a@nJ@36}1oi8dOitO?eY!<>ri zoXvBjgcV3$)P9#4r_XHTuY@E+cY%a%pvL0dJlErB7#QYkZ$OK7F&O@0J>=j53*L zr_WTVoXR0}6*Bka!P8*tICM@mN z7G9dW0F?2Q_j;{F6&luKoxB`Ie{*O{ra0-r!Or zP;TbrBZ&Fp$>{w*vGt6Wj($zDopDe3fE(N%35&o9N@z-CSBss72pB4so-avW8`y*nxN$`RtkP+j=;k|z+kcf3_7)!%f!OanTV&~9{ z`$YnyB1QkAF~Mo)pv)At)|hD+GA6{pnVZDH66bA!>^=K)2L9?^+W+GQy?4)CEkfzU=ZU@(a{Smz%H*CodgH_1E4+=vk>Yx*M2 zL!)RRe3|Oi^6N$608S-T8vY#CPn7gwJO}x^3nND6M=LC^g7rsS+;r6jU-~sok74s5 zfmLP6a+4OH@~KDD87?zY2Sm#m9(Y~u4x_g05f@3d3NcQ_-WBWu0u^z{)t26V;K`+|^Xjqt4N`v7 zB>c)_`>E;uf^sHkCx(_n*XN~b_^P#fyUW86t}0u*CO=Ht7PmTE7gu&(>x;uG2LF20 zx2b!1^3;442Eq9)I=25XfVnu+2oOTE(q2Tbw%=yPi12o2?>j{wajA1fiH8Du!)N%U z^HsFa-b`AO{q)i^x_`BC{w~iR$TB9xRlL7CQlXaeZiwg}8>Bbm&$*`@!Uts%rwDT4xdR{#2 zmXmVI#)7*eW>HIt#)mI>zSV-oA3x-t%{2N1B1BgAm>J&u>@XIslz!V94?vlJt&IrS z$lFa}^iY}6f`G_WY~3;KL|PP|r(tMqrPnd=ga%ccI{}34OcaB3yy+ z7b1XDZXSGYv$e~NwtYR;;4e#g0r-yb!F^6Wad^ch-8pLTDr`{ z4<`845qAw1eZS{~#}RKD$MVGV>Z(H;0irS57`n=5pByfA!+pMV?x(-GE?S{insvN4 z2QB8NLyes)2j1~fc+CD7HS|96zq;hBI48m(PGC&smyf8Q0Hi|IZOpN3&~@PPrm7V| zZqky?vZ@uC5>mgdq7NNr(4TJqaqg5HA_SPkz)w(bppNAZZ0=7SYQ>nc6n~UA-7Hw5 zzxT)LX`5N`Q480a^Qe;|>gJ8{J1Nqn5s$W|VDw~;`|D}oKUisRhKe^)Z^dCi<%$Kl z9tKKRTv602IB>^$T@0Qpq5^US)j_rL7Kr2Y3iSXLRem0`FB-4#&I39}M*e3-tl9@( zuyd9x_xDuQgyVH2RW&hzyjx{^3acW`fxeuab))SP?hg>3qWGw&78s}zME_HmlbO49 zKalN7M_BJ8tN?2fQOhPWoJ6QUquC>G4;S^nVu)U_-yY`nqr?E2;qWv{AA|kqZIGhE zqrKU!k4zE8X40zxncQY<8~U7GR}Oj|aVQskO9Ty|2gVIfZB5<8b0EJZ=h3Uz>dq|=uXn4WwNrbk=v;95Rxdx zi8bjKdSZ3ny=x;8A!RcK5LX$$B)~#2Wnq8W`+6X*aJ1i+2Ty56otE%fy89ZwBUt!ef^3(+@$hNwd2YooQB@>fWIk*ViD>5zJ&ZL?mdbLp zbi@jwa`T6C2Jxc!{s8znEr2ThOzE{}mAW>i%w*`&j`oSvgK@f7qfJD5SV*Up^8aXh z`?#d<{r~^$wB=fBBFT>xK`?l&~279 z@nWqDD+EO4LQ$v)Oc5;=P(euuOz{d36$Jdg_xas^e|z($x3_P3Jzvkq<8gm1Je^jj zdR!;}CMaBrZIXCElEY)%^YvtLOQ99>YUl)XBtJ5E9W!<0{K!?nc{TP~Kbq73D59ss zurS8Z>x%cBTaL%tp;qZ&nQw}CQM(e~rI`HJ=G_)Kb@5nyz<0{&l$wz9#c!UpPy415oH`Y6+s5ZC#GdV z)Lqs#XG$UgT``)6-WAw(=^p_|lNtSn{7LonRsww!rDiot-L_SHq5MegoL9>Qpn3?x zEnDaZjRftFJ56b>F7tc*pzP15-&%@NU>^SxB_awwj9J>1j(mGH)hu~Z8AA|2!&4OG zlPyvMjK*;a={Wj)ZbF5oJZq~QH~}w`tBfRKkKuJL)inp`7@J6>8S3{o(;^V-=Rx4= zdV(PRbV2%tGac%ZTia9!P@eoHlZ77~sIRC+=|%%3JvWK_WEFz@XW0IdfPMtN^3~u| zFnq{*(T~+VQx+3aaLfBpQX3OnLKk1*e?2Gg%QU+#cNHf`M1me&KBBvAth{q4uq>>_ zct7S$T#8N7wI63q&}T307oz`>f&=iM=ts~q6Ny|8W2TYind+*R_xcAb;~_PI(VMk? zarW#x1?l-7YDsr@SMiPPa>8$WBU9Cdp6#sqa!LV!KYR5E*E^gXm{&>Q(I2D)5S*(r z5?k^>$714!%G$V=l6i$CtqVl<3QB1-rQ(svWikgmIlwP${HLw_s%fJqoQm>{ z{4`zMyr?3cpl;UaWXnBIQ+8)Y3(QU4=BzfjqwWq)pC-o2?jqWDf}17J+xGeuKD(wV z&z3mdebhM@PtO;}co^knw7mAosqBOnTwsdiFvwv#p}Y9VooJ%%!L=iD^um6r`w>j` z>#NSP4F-<*T!dS@>xJFI%BB)T66p$QH3xiRA?0yg{qUumyfRgw%Sy!sLBCLrBI+x> zX&E&+ybndG<-6)2@)eH$;dJ7?x|M~aUg*+EoV=fejHH1pczsD*$$J}%DS!x;(&V4h zLm?nmsda((zDObLWHiPkY^QwRrohRSr83lBe_!@9sVidP+6D7D_pwc&>=<-6Xq(z^ zdUQqJ>q>s)(j@SkGu(vsM(a31TL;gX#^*zB@oTT_?D2pGMeX4vwqrhTG-G#{2_F0DiW`{pe317ba zQ1I-6dJ0j0rsv{rU5N_a)+u1rB=A6&e9WT>6@_?uIH*wLyYmDjaUxAJ9qL;R=?zOj z6fLE_iOl-_!zym_A^M@+tc|Mx$W4<2!!UAsZx;y5x`G0APgWvcTu%n(=Eeir#!S|$ zFIp4VeyXepqYa(SWhYl>BcylemNbkIFJ={&@%l$)Nhp_1=nqPd3V2GbAy`+}6rR;#M!ogB6( zo$$=hDHAef?y%ONZYPrj+T!6%Q`UeGT2nek4dPXl`z&{Vd1{+N-WfGLi>B4WBhxMQ zF+gT&tn_bGZm%W3b0rKq__WUy^%?!W#ee;D9`AGbqrWcS-fzycCeRnjJ7Z3%EeT=e z>{-!hO0V1Jsg9wEg_#y2EC~tYuNbWEUqkZ zCCDA>J)F(B_J>r_f&5o)!G8+AITi|dHtB3|A@a?V=pr0wXyn@e=!zbYILRzQ+ki2n zqD=nU*0h3|Llzi-h~=#fo<&0AZvUU8Bl_Cyw&>*D;J>qqnvQskBr;ByCeXWB#N|A@pgh6h}uhM_&`n!PL8Q}(oR;cpUW zmQ9%TO_EED5xu;u7)*B0ZB(T)p9)%*({y7a&#rE@r~l77oZ8KdVHJ8GzuRDTZ?zo# zxcV1buDjIPtHnal5&6Q-Ug>W<_YF#4ad%57aeR1mxEMj*rI>itLGaee#^3nnP&j92D_fgS>*3svtOq@rpf{#Wp<4s+rebe@e#3HabFiiOHnd z!GKI@KzDDr9}3Od*+(95CojQFck|7cM3fY9yd(2=1mI;bgTVIO zw%bLH7kw;9R>dl&yT{#X=#Z*?z2^oub6dQ!E8Gy(=&$vrGcbI5ASjVV<*0u?D91($XLF0 z^#YA5$y2+HITy(8hsmGKG!Ts7;qFd|tzElKji5`o2)b-$!7ql|kYI0(N9(v~hB$!i zMYZP#)4F^Prp)5GkjGnAF!D=yv_kO|wpH`vM^tV=PF%U_AI?PxL1m`;(j3s~$9P+Pt99ov zL%ft_8|qf57|E<9b?ZR9hg~RluFl-b7AYgllUB{ExF}xX)nB%=k#Wb|r=;+j67WH# zvlc zWM>4|q^tcGUS;`C=A|uU2qq(2Hz&mS+9+Kk8K4%joR*U&Rpg`@gP)SJ>qKYCdiFHK zH!c=@%Bw=55380ubKJ=8Es*gF0lv)ZIKXjhMToAUWU-NPk);wCl7O#V*?cY_^6WLK z=!e*T7S7$gI*SRbL9gE!J@QNDJ{cx`u5N15^eBCp0E8J9o)ZwTtXb zqwic3DW09S*%@9>IeH6uQ&O(fN&E84X7&3c>pBH@%4CzpII~ABV+~Dor4S z8&9aTF%H|q_m%IL2kgT!w{7Ez8OggbeJ|gyUn(BXp6*#thR&cZJz%>5ylvQiy<9w- zOly~*+d6EXr*_LlEs(9r5qt3VpYgM8^qE&VIO+93u*r2}tBmJBzO@uQSB(5CbG?Q` z?>-C8rRW7mA9!=7#-IhgZ!f5Cae76iHsMjC615e+VzE)1U93s?m4%z(I=x~8R{F4D3D|!~GJFk%+pBjJ#dudGLpYGZ4)l7GQVXVqh_bNyM7s~1H5Pf@wy!`0rr`1&Z3*Np38 z!;{Pw*GMf_A?I~3==nj?k?Ug_(UV=$>wI-p7U~;tE20y(mH6i@WxM34c`|rG0$%PJ zlJ$yzOP(&#;QMqFXYcmpFOXWME*-5JNxUKstY*0N6EYFi2-s;k9Ts#tG<=0Zb{=b( zevsi#lYYFN{Rj;8C`eq&3%Qsz#4_j0RC(@hAe6`Jyv3;(WUVxCcrXc{WRGnNv(B12 z3E@!YQ@BSks-OLay-Z1x+OCf%irk%RO#BSivIoywX$f~pCC|pw&BaaQPMjqv4oG~S zb!biOdgMI}nH@?m*qG=Wyaj4yPI-jOS_)Iuw^)pWwdJZgldANLQK^P0LN1reXI+oV|HV ze=@-2@^f3i0yVFs6MZ%ojub&A+H)EiLAbcFs_)ck=4|AC0y&y8i9xUXzkD#`IU~wW%w?) zho6BEzY?a9%EvD9QTiFD#^~B$_h1$#>k+P>##>z!Wx>CczpDVv&HPg#RL|tWa&0r# ztv`(#wxDv>JM8WJITlXGnyFa1B7P1el;)Hxw6n-}smCdS%T~I%N1cdJqbMe1XJP-S zyfwUdA>1Kc*0|!SHHH?4)#m(Ej4e#QX#Z|}r^;$c2Ia3O7De|k3CVYbR2hS$K6oWu zZhAzWDyOjngQ@`YISPj^*|;pUOp14Hj{`O(5wEO>ihtCSf<`zPzmHN1Df5D7=LLSu z_<|pP*)ami@+mT@I{fs3!A9>BjzKv(oSR?a_#atFSa!$eY%aGX=(JQ14HtogVI?n* zf)$3UVaqdS@Cu~8&nFJ07^?k2Vr_F)b%kn}m))kjZc@59{c6-}DIF@AM-}b5~G`B2puRqO=XmLRWx^IV9nDApR zM5gYQeyR+ASmxfb@bXsW(_JTyrT1vg#!eIV5ouCJl0)1KK!GZIZamA&+-Qy|r!LjX z7dCQ0Ef0m17WTxthxDi%0O2Clz4 zhY1j>7VD1F+j=<<1dYYn{0>bQjx~EdU6!F+=-0%zZ^AXAfvSKROoL%I3qmzU<{H3C zkA6n4ianIIl>Gs`^B{tFMX7l6XvO%XBveN`ZjxmJkg8;c8!Ecn$HS*$eP7g>xHFqg z)gzZ8a_p^fimxS{;>ZyF>CIV)1i6hJk61f*169R9f-@ZedN|n>5tB= zDc2RR6TZ2jk`FVDN!ys1KpEJ6y_T83I(oX+_)kozF6of#?Ccv#R9nHPgHF3 zcmx)z2DO~@9_G4=Y0sv?qYH!MaF~^Ba;u$O6gs-&RDtVy&(TAOcH?)&*pi`>+_2OY z>y2W^yutKfc#3ptp9~lZ=dSMGec((5IBt`m}6C$>) zSKL=fX)$G@1@s=c1X_3YgkAId5x3)>q!yR`1>Gb6(NtePQiBKM-DsQD6jVt(Mx$Wr ze2$+gJ*q(X*z+_`Xu?C&tD1OXYePOX%6IL_Vg#{;x~RR1@-v9>MM2xK-n1}nuOcJ? z)-^X$4ZPBOs<#r2lVz(qKHL#qsDgP~s592^4FS^ENUst!PYqW-5Zr%cOl`Tg-g|TJ zNF-|L1fd=HI{)Tf9K>A{NNm2gT=0r|(k8j;?Fq{UEYP4_hJ-irpUpgo{&n%5`7%)4 zjpSq#G$~y-5L4Tr+MJL+ny3@{8&==M@@@a4kjbWJBt=%+Ji;BTPt>|~F> z3Z65Or(rXa$73s1#dQ~WUc#hCs;HB`P$_Hfx;kGxkwivUoXed?cJ_1`?t$Y^*(3#9Z1=t0W0}sDa!lfL z{C#}APo(q*L3$&hnr9cEJ+w&pgiL@APl<{Bg9w;Yq!gk|Ti~}%UJXrQn>$HlRP@la)eq8G$XlnTcgIi~7U-AGizY20Zvv&nkq0DAzt6QLSiyBmDPgGGhXlbg# zYxRS>8F4k$`!NU+^4JBpAIe{hFwGsjce@Tx>>LWps9LHvtB@&6eD?aa7>o+JcfQ3o z+0uv1M;^!|Rd!-ezICt%jnzY&LdGUCPLrbK?ye6AcLGravLGzmjGfjUcVp%IwKA9ImOotD%b*E3MJ#w59Rv~kKG z7KOB3Sfp78X}ye~9Tk6qPPhLopV|Ue3f;lU6e#>(Kx7FFOhopfOo*|lO};subVY9U z;4+p)|8uKKBCiGWq~wB6ky%|&S?KZ?R?To_VDr)8+QyGreo0Kak5X zCbJ&iBp9m;3Zp?nMc=hlwKd3i^paesGt3gB0O~X>$bma@50P`};a*(nzxqrG$6R0(w_xH!(fk zL==VfC$%{3pL#xP&U&cr(=w^0?QR@~>id``@z_YccT39yAzQ_vbhGF7$s=G0R8ta% z&d5w{_8F378QAR62FW>AQJ{zjZL=^m5~6ozH~Qg@xy7jB+nsJR zR=yfnST+1la?NjMQzd(Y{br6NjI`OFCXA46>2O=Ko|=Kl33K1@Nfyx7vsFnRGN>Om z=eBgv^agW_RCzzzG3;Wwf#+R?@*S2WdX1zhH5Jch*~VR@5twG#bsU8p`tbO&CAH~_ z)J2&lYSraG>jW@Lq|V!xqiqD|k+IO@&Qu0;H`PBa!C0pHiW!du$d(v)9gTKNW=))9 zGkN<9pJk<*JF^vtny6Em^(|-Unyz(>e+&$h6S`_bC(GyFKtKcL1f*%)rt%3ej+Ge&n%_QSQfMWiU4qzQ?>Crth9}-?ja?R`;kT zk;Dlb{pLz(V9R2@E|LbqadkG>WyP`q4lTj4DLLAck>Ttl8Z;Av_x)bH4q zWb_($BRrVH>-y;)&HX^~)5jNP@;e0=C&JQ5SAyL(f*P~K=2S#h30uW5%ytN+Enr^a zq*xg+yl|7lKm+d(HUj;!V=f0rfi>os0q$2z-;{_4i{a+ehP&?LndN@Zy{oH)N88!Z zmIuPypkpL=8ire=%SH$H9F#kT9t# zI~uU{Ruj@gfu;@px+*FSjz?6>f*l!~4+m>KhpK^Ed(g)Ka4KSW_|vyi(RwPP^S zn5Ql;jg(H+EW0yn3SXRnGWEmvxdHC*ATK|xX};ier+M|fglHUm7Urq_waRo0PFR#q z+J#KdzL5I#B=~H5GqKG2M9yz}Q>@q0j-NQ1~+I^)&3U zl4pB8FpBjZ_VGxN<%Wq8ruzg?kM%!+aoZuz=#8XOb9OJ7Czy?Bg$-}XS6a=8Y|<85rMYWR1Higasob~oKd?Yo^n z`kn5*xFyt=F}mBu9vr~Q9u$e5cF9CsJ0M4GK@a&E6Ps}{sAbC6Zp`wNP~M7Mw_04W zQHu}R(JmPCdOYy2II!v@Ad$;+X`2;}By>m$jWPWq!}H=rj#vFW!ZEhCnB zp!}u3E*Yq{QAC&#{D-7ly2;D51}#V%)MynZxDpTW5*Jz%Qs`FcelWsO^ZLPuwPC_p zKsDYAsR(gALpVAfOjBLDfWkpw2>>T5Ee96km|5>Mmy@2DfI(2oiwb8`yqcR3HXSb! z-^ds)VkfX z!CXCo#S*XkPwYU}Kiir7|FZy`F9TBub1LYL3u;F;sdfweE!Wtz(i^$QIt9SZNmcfL zeL1vZUtZxxj+@Q_O@Lgh#A0}P1d63_J&I%%&lHmf=l;L&&DR*gM$;c@x@K zp=o360)KhwTi9a6QpEb}hQeh|QP_sDS~QoqT=jhvT;@kYp}yL%)Ht6gm4o97lrQ^d zAGCTB@VwCcNiu~_^4#!GQ5`EmHF_yav$hJbU*q zL+#qm{!bMP&-)N`i0((YPkDEnFEwdPs~W;h&=oKS3WqDB)l)uQF~px@UomJ-4yhq)p1(euAbu29zq-{TbFg2Ukk>6Q@ zg5#{y#vb@`U(6D~aV>`EWblX<_w@ZZ=BAWVK{CZ}8(fq-S&)_;&DE~eckiZulxg?Z zxIhoN74@5nZK<0RY!71_xQ%`BMSVI9KI08sQ|@gnXb~xauAN$%lD+fThNQhG4(0kR zLml53dLb*$0fzt~{4N1Ms7902tQl;fV#5QF+_$6yGdZQM73wA0@X=*UwQp|nO356s zbK^fa>CJ?hS`yj$>+T%Hcg>|QyI`10Aii5MdOwUnvum!V2UqBFqH;zkk>2Yk3L_85 z-&aIEQz_l2sKAXRIaU8OLm++JAGVx>gZUGPQ0pyDD*uO5lRrQh~YnsfHx0uA&u z&3#SsTv%?wMfX}oIB4^bB3TAJ^-9>?K4s|ggm!7yjR_CO%& zL%EpLAp7^*LP^zhV82KR$E=9cqz+MiF%1C1h)@-xkwL-anx0K`yO|#`{~`ZF)W|Vx zg(C9@)xxVQwaGkOsbx_>3!>+2Qph-nuhN8S4#AIvAciNkjf4Y^()NgvXwA_euL%zs zSQc@vXHGS=9LdJDBmjV^RZZP)JUj>S=E#Z!>DYk6x~FEd2^wu{_-^9;Q#Op%Tm)M- z4cz?#gQcLu+*w^TYSL~m&w>QI)S5idq3I8QP8si%7o7cl9);)0#^*^Jer?Zh+bcR%CM{SD8oS8zJ00xii0?CR~vAw@NL> z+1Dc~(K4)A+gWNM(PB=lOQ*w3#7xs_CNajVc9R0Qy0YXA>|9L1X0S5Mcep_fb3375 z7D1rT=Y?Kz>U592ri3unO^zuynr+B??Z*o_gYlW3EU|GcGb8x3a3>oA|A`FjfLlu2 zG)t*|CK=I_;N{gDk_2l(HrtVHIKh- z2RML_jYw1GBiqi)a}E(}!Vd+`=8YOJC9B>Bf6thx1-9=f-goLpxi;-9)IeSiF8~C$ z4*%j5I98BE$ALCTDDcV0N))F=J(&?{ajbV?_J*vGZfz~OI1mUXw6?q;}dT3M(kJy&rCHp$vY9hxFA5fu_H2BSCk!==N5|$~xvv zYpdMg3k;?WC109*Tl|7bp$gV1T@LqcUWth5-LqlLzIX3Q?G03OJ0oa|wQ?`GxwviW zeTC=EKlwwbt>Zlvtw*qH8OeAboA}e|Vr)YJ@X-;T0`G@khQlF9)}l9JVZy&n!NW0_I?Pv>x{Gc^ z&DdTq?O;0G%Lxb`S)Fwi?c(>tPd5|(Nzf0R?R3s}tJwNIS5aNew03<=1I(5^(Y#2^ z{|7MAHMecZKJ? z#a-=6WmNw_!)Uxwr2m!wzI5tq=Xa53mQty>ZX_%^sbX>h?kMm;Ie(0gE{yC3X%|N@t4R;mu|z)FpC&`iX)UTT-{W$A9M5qDwk_OEci9oF!GZ4 z5&B0LmXb1^RmIb4x+hu*YXA&MzCMd}zHlTE`Yaj$0QA6QnjGJMrfId@Z`K(|T&WEd zGsR1qctMYvsdFj=sJpt8Lq!*azqL0NWHXMcBrp^J->%%+S*RMVE{;HtzOrc-fK%s| z)5f7Pz5yi9ND+Mvh3GNj0Xjg!BK#IE551@1a|#}|@LXtNvyy=YnjdZ=EfJ&Tr+5t$ zh|0};cpDp5-x5tyb9z^&@0P_a^;iAb$QCvIuA<;h1N(;lIR)9q4m?{e<{{qgSJj}p zX*)MfbMgXzKO<{rh>RD2HFk%+xj<$arvi9om$a?PUiFTo8j0ba1FIL{x8mX>+H-L9 zoDvhu3u3F89SZ~wl<{G>=QfoueNZVN_W45kd-pG8b5&n1&zx&cB`PE41;EX|m@q!9 z!i=6on6NVgcieVnPPlGoE8Sg-A#x&k&X7cEi=SvJ#t7o-T&1Ty*xTS1{LmMtVhi2I z3VpHp#Z)(Wq0?B8RS5yT>O^E=Q<@wk#itk46XtlMX`Zt@UMjc@0%4dgaQbFmVyns^ z*~h^ZjL>fF0Jog2o1QXE=Er$035Z}nt|iSpIGOIp?CpAiReeyg60^3{7aQe=$?iy^ z0r8RLsWFt3^ml#p39~-#&`i^b09eR#kgmkXK|%ekyDbnN=Q$){h4~c)4vZK&!&?cW z@9GZP8SDYZ4DI8gqY!lez0KjTl?`s4=BECxHYautqvI056vv<9gqTCzh~+k*B${ps z7arqvD=?*#_&eBA{>v1CCA-qQHE__7Sv(^LS9w9DHnd5L@)2si4_4@;L?WfWpz4eX z%DWwSaWUetmo#Dlv2dZ-_xjj-oSy4?zN#V+jL}{g(h}WTyC3e5u|ba0gd!W{15rb) z+F(XwZ)a@gY+MeyGSd@-8bW&hU*k?xJ8u)u+gx{BXxgMh}( zv7uz^;o^dxgBEO`x_t^K#et~{5d|~x#3Veylr(O3<;K|1j#Vsri_t zfQ!D31pw$rtjXG&M_=`5U9aqYd^W;w>x1zltdKQQZ92Brd#LUfbO^R!RG&A>&aDwT z6EUl%l_S3t{#YI8cW4hx>UnehK^O5}1q%f~=~mL&RJWvg>p9N09a=h)6?2M-_17?i zA5`d2wcntoau0AouNlSnq@K6eUv!nSl{?F3&uzt64%E~nY~jLieHg0ESK2hAebs2- ztanm0$-z1f-QODWJQ(mKrM~X8WVa$p2eHpy@?76MO6~366Lq7T{Pmdk^m6U&s%$QE zi*I1-EBm6Ctn>LbnZ>xQ$r3Dbgl|dJFT2M%P;>V8tno)vfWEW|p(Ya#Ky`~Y)Xjhbwrwqw7aEmla#rK%w) zD(I0_gjs&JHHK-8)M{XTF%jm5mXX5+VqW2BPZ?2n;MdOgKZbuMcsB05qxNqzKeqjp zylIkELl5`{1&y}4knMJUv`zBS0}L=Eyhy^|%{YdVlA!XRCJ%~(;2GOqGt0L#nO{7T z2J%4e5ktry2$gS-zmN3)`Qo0>$It9;b^PZu;W4(=X*hXg6#FXVYblGwor4|N_uGdD zj{p13(BlTiSKRKS**%{;{$$MY7X{`?`NGObh26M9=yffdemKT?=Slj-na>07_k1Y( zJL2MJlGo&Spq7~XR*8fJ~;~*F$T!H_RE}=uJM61={Icw z6L85ZqitGgn_lT{{)>-8n7GY;eH30fa5C8yr)m3o0`As5D{Wg8j)Fczh@Uo}8-fm} zZR+9(&s~XuFDz;Ev}v4eX*X$SO7u%@Zob03`)L5?omVe)5BkO5iFtveQ_%GW%=BqJ zeU5u0YtaOa%N^PiaVhuZMBqop!ZFQZLGw?G!vA`#i<+kZNP>NIGO0XAxwx-QdofTR z9Bf)R?>kBk%=mASttV5{u9TTB^OyOW!eIbS5^MO<%MOI$IXDNE1p+izr_#Au!{Bhuzb zJ}sakeP4hd#OWW4Vn!i~D)|doc|P!FMc{csi7%b4*gL8R`@@x;3HDWx0E-+AtyK4e*@ftX;Kk1Wk4nTu%3pk=mQ}! zo0=~(ZZoE_!yDRXP{`+`$iGuGt*W7|p^LtH7SxJEE zY)qk$SR10EHq`)qU(vwYJ*{%1c8~4YG5W9ilBT&06`07lbqf8ByQDsb{*0B9;6c_| zCgmwI^h)7;<1gkX_j#pnk|5^K%>#FP1_@1eYH%jKObjBnbfXLYOYGaP`IoZsjS`Ws zZrI}c#RSbmCKR>q%QlxJy8t+Cwe9}1gIS@2yB_G8bJ2(-tdY%e5!@)Iy|cJ{!pv$N zFg&DE4%g_CJk3-eQ0N>>VSe_B6rYr1SvbT8TAz*+rwd1-x+BD$Ul>`-u48ARE&6iD zi9tsxrcgSIC;3#AT&a*9cM=RYzuAz_fM%5=zfqEVv%fsi0gHoD*?Aej@6ODeB>z^? z>(=So*-up12BMZZXL$dZDQO!E4c@TrrB3MU%rxW@nh_=VRMg5A2{N3&DT@%MUGJXA z|7^Y(o37@ScKHR>XyC)y-ZaCf>Q8~ai@-6qc_C>}Qebg(+kE%|{msm7{>wt?s!R2r z3LC|UOF^8BXLhX0lym?u*Q-%&s&5p0w%$~BI>zh$s9pE+=&y->3M>oD#iZ393 zAE}3P&zpapH15ho*082h%+-&m;=7>(GjDsD{d(1pcUFAnb{uPQwi$>UgtN<&ENVzf zpaS+Lw%Mxc3%!-OZio?n*DU!j&vaXK=T(o+HE0VOs@aWjB30-NR}LTVX%`G0vJJB3 zb7{g;JnNDJZ@n!ty51o?IUrA4hr|vZ**;$wKQ}@%8~A>HL#p{@&zFKu)95FfPn0U6 z$eI?^V)z|_+PXm-ezRO1iVf?C5WDF}HZ97-Zx^TZH92E*ljgH?5jWiBfN|5E+L$`l z1KAidUv&g$cDuMe2t6Hw6SNI$J~$PJ=rIw%R3h*ifSU?eTKW!6$Lo293Cs|Bb7PgZ zj5i!U!Zqd+lVwiaxHROn}@n(p`dw^L_my zo8p^fo8bpi2QJYPHw7oC@B+JzWAyh%`C6Nh>ih&_v@qR+Y0;1R%2eXi$B!Zm`m&@U z22p9?VdnP$0XXa{gDBPb)5a~lf{dh{4gFPe0_Q6D9KiGPOVGa+4-XlS%n@VEAR1=y zf^9Pcntt1aozJ@|65a>LSQuuHRY}g=hQ|7hzMkKU`87WXLYePWTlGhogU8a55qJ|S zh8AJd&MWWbseNQ=z9&j4SF7iJE}UYO#TSC+V)y!UDh_aB0!-l%+s9>JouR9PS`T5J zHm8eq%BnNG0-9KX8h2|g&EL47d%SFT!JOM!z43kDd%?@7PP>VvRLC>+Zc7g4*ytzz z$GNnF=Q5L*@w>tH8PFq+?3!|nMQwi9-8rY_h+RC+A9LB351GEbIR0^ZL22adX0S%K z^3t^E{yB$h`3e`yjS1;<*c{~aeJV)b8h^Jf>wECPq1-a;ZuGTR?NA}*nyrwMcZp!^ zo>;%Xzu1F2;f?Mn7D|t2ifdy12x&KCBknbSu;N>G>gaV{px*Lo@7)Aw#q|`In8Xe4 zL)vp#ZFOJagFUjz?GVDTW3=s08-}+&=!Jaj{O%f8ms*nAm#LPe-}`jpn0D>a=CO~W zpSb>@bIf;wdAEF#!i)47-ukVFjM&gDw_*)bi?+*=r^|2O=%0Fm0)vzr*GySX{r&M& z%-fFsgj|iR$6ZQ{39&5WuftD&bkfXZ)QGAHp_{Wf9B;(7Bgmndd%755j&NpS5j zB{X^c9;__p&R(@P>Bf1WhNHaY;W{O%<@1)sZF$`f@UP!fy*PYg_&xEVU9o@Xmj5&_ z-z?!%pKFfAf48s8D%O1K`MHl=EUEq!5`EM4EB!P59p$0*jxB%6hZ9o{<%B2fqu(ZO z<=OS}YQ`Npw17<7DSp6pZ{NcER+!X}o<>$e)zsO8&?8I0z>yiaV)^SI-8aP!9AT{E zBP(XtmEygt4i&2o+osQ7Hyg?f6!YqxSnFALKYU8$OCR#r6V2w12a^+^T`_-W z!gCvsuJ*h$`h@(84A-;k$Wd8#{og02^RoVsygAih%j-t`o)yyM=1)Hw=4SW~->_JT zJuvMqk1C9p?~ZwY9SWsh#;!u~lHY^2&Qso*AlxSX;~1uc=R}^A5%*`t>}@}y#n&Ct zEIwW9Iv4y$Af2D&rX5ZLV=_BBC-J1Uo(0p(-{#Vvlsn#AG1b-J9Li}&jH~AZp1~Ap z{KfLhh?VlcHvU4{_$UN*d%Bn6Aq-Pm=WnFt`s^?K6;b`j&p5+b7rP$9c3%ajpjCYq zHxN}JHYXJ~sg;dlQM&pS$H|-s<}to=qVSQ_67@m(Ze#vOWZju+S;L-KD`Q`4#JRWE z6MFOJDe5{SgO9D;<@KPExsyp?8Fjq!Zd27=@8gVL!BQFl^>a?#%I9aFz3(pQ|_A155f{V&?AYSNI=Q`iR8T;u&8fij;drm38 z9_8MS2XCwmluVIA)K~B=NSk4)FSJGU^+@fame&_!cr;vc{nkC_z3>UE`qU^f29mQ? z`*G^q;u?7v)q7IpyX;1`POJpJ;2EEABUHDJP56_bp?n`uq_tUW@C8B8oxUI&R2LGq zLgIvm*Q_(*1)T1LehF-Op2=+DR~;gM_+W~E)mU4!oE7=Wxt4bqAu(bSxzw&*l$>9- zZg5AqbLX+>csI>Ou6~f#H{?_oW9?fWd{5d7dp6d8jLV*v&n=$s33)Tu*9@_*AKX=5 z@HSDgVaNO`Kt$I&r)<5vIF0K%f$3SsQ1rs&8N`)p^02_Am3^LlNopm~48B^yb5QN3 zq`ef`+ca0p+MjgHBG`8TR{pZbot0uI;+?dG9_J<-s|CIg-tg(rlq|170wp47L>3so zWm#nW(Ldb|YLZa-LO)zdNBQ43wVyZlRcZEDn}pur(8}l;_w}jolj7-m<}irbhg?xl z>e9Fqm_cudRg7{fUKzYlYOEI2`F3x;dkWq>IY2S%6t6R zP0g9?#gn)-_%tY)m-fY^fPWGc{2N8rc(0b_J~4P;OOT|F-u`tlxix<>e*POeKQ6{T z{H)o#EJD-XC~5K#D$e1(8*ev>0iEV%x{*Cv!KhJdfwYlNe@Lg%n-%gayR-EG+z9mq zZ{v4g>9qYyYCuuVqs1<-hnlu2=%o_l7wT!-WQpc`2xr^;oQLM$stsX7^fyo7@|KVg zO-Ctz&7*6-d7pEuVgfBtC(gOmE9kI!6jgH?HG|9P#nuY01m}hZPJ~_2ic+UjK92P< zl41*~F=h=%p|83I_Uw*3R_YrxEWTilk|en|23M8LvudC>#Jt`V**i5+a@DBj*v!Z; z`Ck;nr<{9^$20SJrTuj=Y)!6mQJ~|#UzG04E&n@r8f0dzE#n7U-9`NkwU<}4`?&F> zV~vt7#v=BWhElc8Go^rxgnb$5Ik~i6R5Jcr?HQZ|KJb&|FhD6HV z4=c($>8eLHDk^x|QgxUm#XKvD`qgV!%TTpXoSg*kSw;Jx8cDU?GI;6g2r*~%0tZ8x zohYsteWkQQmZGq8w)|VidconRL-C(L_2x@KViB_Y@fDx?Qk?|p<9>YZ>`=RwA__S3 zD*@guppW)`TGRT^nW}J}FW2xTEd`M}%Bq1wG*Cy%}WgsxAmyS?61bFUvHR_su|j^#Z^m)?w^u| zaVQ=)a#zUd^6PVwcNaI7DXHqS#q`c!fboUynyR_On$>141(!M2uRq`MbUdBPdp#D5 zG9|wS;)u_m&@%Zbo5gjHQJ#|<)meRcY$AbreoOwzs{^Zp$-HXM54y8`3L^s#kWIp2 z<+1)Zc+RWRFILRxpx36z=lYXVd)*DieN%3_g^xPR+ZS|Y*T&+L%J7g84pM9%IK%KmrMWS|RYUDf*UFFHO^g?jm~@$Ax)Hq^D0irS4Jg0A5QQ|sG(qcT;+ zgtk>Cm_#o{oCmfQop>7Yd1PzPQffJ`++;cZHgO5kuu@(syRvBMwO*eL+}#=aysuF_ zOIX$B`>m9SuGogviJ#0h2Zmv2?|_)FZ+cSj+Ta%HdAl|kM4#;QR6VUFEiVws5kYYU zy-83VW_3{)m}8YL9U4B4GfY|3U#&=Ilc3Jn14-Ryi!FG3oeyncrVw-9^l(?k$p6a6 z7<9jb15qi)%{UMwr_q02wX%obUN_&yqWX*KoaF>>m!>}Nn2tz7_>hGNr%!Ayl}Az2 z-jvh!M($}A7a{_{DUBszUV?UNect(roMP~~AZC29mrnJzom*E31XTNlIXbV{r z3VT8(at)#uAEtA;*N=KFyzai&H1>7&^EEyu2EKHXvKEN4e0J}!MEr+ys@GKHq?Gtx z@Njc8IpO=UhrGmsBdvF&j(6Qs3W~gzAw%;=fA9I_Qo)JrZzW&0eJUgTI^TNfd3B5y$psNiV3YjnDQ3LTsJbM?V<(UdB;UBMmx`T1A$oh`P-^1ba73+L)u zZ(riF2NSN)6xsi95s8oPaf8HsB0WC@s_|$Eyynm{h0)*Sd>X@tC%@v%=U)LPtSZux zttC9e?Qk%x;mf1@I4-%3i#*-z?$7+nKdT{~iyl}{=sQn%6=?67t#2Xul*=5s3Y=B? z7H|B&Vo+rp$DZG@9e7>#V(ZW9P$j7xdpJKfWBhHBk#nbRq!)tS>28UneLB`V^sY&Dfmky@H!;xbK( zl?pB?DgqVahG^vgu8<&@q97v3s(;S!@%Z247B~3tc)wqt>-D^@D+A*`o4z?!e161b z3YSG0l9f8Z+FR^;K$Y2@oCs@Y&~ahN$Rw8dlQk*x!*kSG$3Q}d&Kp(~LRO6Yv64cq z3ailDR`A`|AVov@g-5)YXb)7PI*tavpB=>~2=3n=-R6 zBZU9wmC)YXII@5{3_Wa(dTS_Ip;Yz-lcGKY_|5(tMl0qlyDNs#p?i%jT9hwDnL>xw z#@>%|MXCW!@zY=3)HT%H>JG=`LyWNgrxmgmlUrOyQ{>Y zCr3EpP9fVjcwsu08cI)BL!2OXQ#qDgpnIEcb7oM={-Nmi-OwcNdZ*G@qQ`hYmU!~h zyWW#^@>uLte_nm(NE2J!g3Ykkr(Y~p4OcA|I>6^8AjI}UA*4+*T|Kbc9|&bCzp}7l zVgI++B7I`|(b+Y#7rM&-r2~J=5(3 zG4b&v(inT1eBc~Y*Pg@mL@2PK=A^><|-vmmplm zMH%Tn)n_{-n^KUtP)VgAz#x0{68B<)LO4<(*~2b%im1deDPf9yppB6d=6pC3-P#>} z@mBgRFPtl5!zZ@aU_e5Ur{fq|Ze_m$|7ZW}AZgg@Se2H(Fre{z1Z!VCKAv4MgX0xiQRO~Sz8+Fwu zoaMmJc=K=9R&ae1gw(9rVtU*{s%rvgXFa=2^$np>9-X<0a+4jSBxZk6KclN^6*f*8 znjZ>v*AnGuQdrRL$vLMXAR@dq7>F1RfGUai&Av2k52`YFjY|1yUQ&nds`WBKa8tFc z@Tu`aVbzSoRiT_52=9;~Fqp=;Z*=mVD%r?L1GO<*hG{3BuUyz-(O%!7QeH`a``hV> zMfq%$Qu{~ogsc9YuH%Qj6$T1Ov~Jmb#RHtQaZ>J4{CF(b7b!-u+LA6ZXG zU8`AN$|IAMZJg1LoWx}?DeQ1Un5VjO|58LuzD{G$0duMGYrrqQO~VuY>{Mb6rn#~qrG zwGXZQcGdtT!;r-g1V$qQhBDXY7vLVIjl;;x>cANry6}bngtZKnmEtY?1~suPd*9lY zAG$Wne0k)PA`jvJaCD(KyOG4o9!cI^kQFH%%)oL?KkQ9l#(V1%EA*26HIh7!1y0HV zLPZ**yY}e_ccbtIvg%PL25QUsx_Y4JQk5)RIWGhaPDkq}f3@XSo`X%*dIQ>Z$$cpz zbJIfweS(L`!0Z3+5=E^2K$18Gu1%8U9J|v^R}jHfj8e+=wrOL}v5dt2ug=X==SD{4 zAbf>&=KgjUW=YL;pW{5;B9(|=-KZaB|lCOP{w#2@9yp2{h&1N>;) z&P={`ioYBA_vJa@y9w;F(|;tHsoybowtDpRpFC1WE+DL}5Z0I(Pxm>2{t?{~@nOWo zrjczB|2q2S-f2|*t8i-+77R3%qLGDCd}QzA{W3IDr~ebS@8YKWQC>MUEuiE27_+z<1l@R;eo6S5#;FY2obE0xO!5x2*33Jt+~LhcLz|t(gK$N5D9pcg z>n?Sg$27Vfq1L-+0=RK_p8(=|$nuSP+qpU(Rnyrn!cL?8xrvQg&}LN-A*XRf^0U`f zTr;Xb#)unp`+Q@FAZ>`4+0@gs?*#I2L4vv!9+(8?FBTad5(`1hk|^Mb$pz4OOV1Xs z1Y@k3&&Wo=kV}NE_8B-;q?fEcy!{a(J0kDw#nUN`X@ck+Mo~SN?V{3#v3$!UMU^MZ zx{W@Cf>VIs0ZL5S#sj1zGPYiIyf0)O~tE z9#e5`u)4lYo+cBmb{?vZUM!@C(^(6tEB}`LsN9z)*=-Hgvo2;B{AS-4d^%#f>a0U@ z*gC;K6BbNA2g&|hxxDbi;8~++#`J@fCH!~rgITXFcX)BKFxi`t=n_@;p*-6d7SB{e*>SAkqsKzrh$Mk=+NV#=pY0C&17iV>N`Mn4B z%t@ap?mH2(1=W^<`7Hgz>TY9hpGOtx02QeSz5!Me8Y-7ubWrrd^_X|amJFUB&M1=0Gy<7Z`sXoZtrP+ zIIHm(-s6OF^Ti?cO7y4t+f-33)t;$t_oB}T639bK`0}0}Y8Lu|0+K`y3vcC=qYB6h zP7BjOg6jO#FUH#xL-?WjF<_=5Wp8GIO1Y(a={u>1kc7ZEUR?>WYYl9A$UzMuQY=7x zyRx&B!o>YqXo{|5KNMDpc{Sz*&R`}=4+kTK88IaUCd3LtPZ8;ck{&@?Oo{#45?w9b zZ?9-DI+`xP^*Gz4}SFzP1tRs}z`3gw0Znql%bryYyH~;7iT5 zYa%V?Mo`d~LI1x|Qq3{Z+W%5ZEI7!q#@yKK*T-S;f49{kIJeZ(s6pj{DV^a@(j6Ao z8e7z6mx;ja_(-DxA6rjvg^N`~7(3!d5EfeXu~=6Iu*7o>90G*2f4-ePl~koT?=~%` zp&eQ6HHe4&h zc5ff;W5kz^%t^|?ASzoL(XNx-+)v1<5D-VRD`uAv1ub{Nk{E$AyL3xeJet|gZ~y~5 zvViNI6fv?*iqS>tEz%~0dgr@V%%gWz7CrKP~$SfxA_|5m$Bae`jM zjd#>eNAg}W%gq1lHCs6mLD=|uoh}b$Ti@{ixGD?qmbv7i{bg(L%^&)2O2hJ5vJ28i zKwf$1_V#O~(1B`&;+M^4fiN(r0ydPM@z2;{T)e zBMDdsNY8JSm&fyKUI`{hj`?qs8gSl6^D>{ldgVCyr!c%$-FhMxJ@E(es~F`;P8Rz5 zZ{6=86;&?}Fr5$i$*ku{a(^_%)7T;gpgO z2nTpYsh86%y)HK=&5iApXNosMVR~963?&qPdGR3~Bo^KP^d@cQ1ya)n>r?Hj!9kV6 zQ0jUrF>qu>JE4%BqPC0v?i64c!{n8pEK3UQj?#&;S@j?21&(AG^J8iYBmQl(L6Y#9 z*c`6zzOX~+F(@gH@*<@--g83Xmt|JMQGI8RtVX_ra^2LBKF#WYA|@I#8xkv`KY%2n z)Z=+bBs@viCMleepRX_jDU9EVnW>|U{qmIQLRR=Z58@?%j#!=h-7_@cN-^K26-DVsOka%xhEVW1OI3#b@RgwZ>nvz+e2h3bg zzbcSDIGA91EBe{Vm!O+dY6mV>_|3W)x^R1{bxA8gT!n#i`qM(dWVE5@ohT=LnSaI0 zeHT+Y{)uEX)9;wq(4 z+(DT%+JU(&%$AI7u4RwYP!cS$p8d?eS;6^$fNG1QP~ckBx$X;KO8Uz2(a%l8={Tw3 zTTe`i<|t@s;Xr~d=b&#p9*KZ_suIkYs&2z|tMMg1My(3YaiZ(|y#R&w5@ zySbF4n(9Zw3S7c$_~V>PVs~@9Q#z83T%Fs z#uflHT)(}CT?PTb%F^h}4(u$o9=BJzPu?9xSG0Yiix{e_P!>hi!jMdE2tAwSGB^e~ z%o;qNJrU5qQ=Dw5348tI1*;_Zpi{L=t6QW?j>WeF%<7vsA7QC7{mXRaQN$4WC!8gt0JC*T=H)gz z66~ckZX+(pca?6q%-Ylg*{s)2w!G*eH;V@~yrD5TW3l`OM&+q8M@qRW&?1+W?rT46 zWS(f<*j9cSadv8z_vkEK{V@7yKqu3~0%)fC{Q~$yW2W2t zB)D9pS-$Xv@uB9|)Vd9q!weQJts7~duK6ui#jbjJI_}yVe#rV-@7BFA%XW?~=R@@q z;lJJO0HbTV$ZDHO9sY~>qto{w%YV%3vSADkBmSOIa8w;Xu!6b4bWn{(zv_D&rvca7 z+^(KF$#&ZaP1s z@iG0&*g?ulK`eGMX1P7{%FKF*2~i=~jWHaI3n+50i(-PwNS&mv%YiUq$R(1@N8cAk zeVWwr;*h-_u*1RGn)@N!b(C2cu*i00O=$Wn8g`e3`JG2%23yr@gd#0!xc>f;?V;f1 z*}t!!%V_0EV{WbefY2?*Vy&%O-rSS!8Q!G4u%~|99dXp!hUrZR9^+geF25PnUz^^f z_heJ*O7pKU@#y|1TVA-74p)S17Pm=vj%xM`DC|!y2z66QXj8ah4{_K(!n!w{aHWU> z;3{JpMg$jINxHm^eFUhTHC$ln^j=}Srz%( z=8f3+vfcH=#pYRB)F;=$msSY%N6$enH}-2lg6%VA+qHjd zcg}63C+UvLjGxnEZk%_M{b>AL<226u-5$dZBDVv;guY$ONc^g%ny~i%`NxqwdhTU^ z=haQ?5D$X-gboRoJ>}#GX3F=I*xF-B)*IUJupD8ychmi1enL{&fX_^PmDcH0(&4|8 zY@a?6g7yCwbM5n$@tWNlTAnT}wUKr4)^KO7KZNZ?zsWAQEj$s02;e-?$f$C-_elId zbesaJk1HA29=)V~eyei%O)SEAG-&)tdi&j!TQaLS64`Nmmn|qgsdS>P{YmYVaKd&R zyrql+V7T0XA$Z>nUIyg~DtiWB966@y{M_5q0jeErPyIGem@hmCT@{t25cFpEc>k&%jCD#HnaLEWPZC`xsj`~?iH4v5?Rhu7g^Ya1;{EF2|u`SSG&|z61?61 zanc@~$)yyhNj%32*HBP#3Jxg@%}%p~RIY2o_L>)ENM`Gy%DAn2DLU`S_C1to%2VGVoVWnE;&kL=@KFj-nDO?m~M9EU$_r( z)z`0&Gw-hEVT7}N)a8T|?c1o>=9ay+``fc$Y^qMwj!L|A{bW+Q53cEX*hP&0x5Dyz z#%-$Cr$2Tv%*}~aXb9r)JVkmY_hh&BIuEt-4=|-S01nfm?u?!BQjw`n{YZM&x7T% zaMmzQ5(Pj_&4;nVf5UOr;!CY|WeIJI<2Hwt)D*A135JIY)q0sjZi1?R&v^dvYC@Br zY%Cp#DoQpGB!s9XkLKd;NwOZbW42H48)iI_-m+Kf&>YnNt|REn5|`OQIv9z*cZGM6 z=?N??OdSr+^f@3jCJY3p3Q=fYpKNaa5vuiBXTY%R)>GW(yc)f%tB~Ss&|L3o!OC1# zmhh4v&Us6J_7ci&M9{MXG%%Wb8ti;{MaoE)LC&hc2C`2EjF1sQ+_nAZFxzz9Q?zVV zK(Il1O?&76&jKi^s<)O>XKP1m_dl*eVQ9>$rgx3v5xOr+5pRq=U0tVJ8m}11q4qKj zoJOA(5Vx604H$mMd3;}0d_ORdrTf!Wa;a~x5?4P{oM0c&yb$W0eD7?o)gb3ymc@PU z6Ja}hsW{EhRgBXH7J4WJhh)0fDnbt8jdyKugln0Op3~3j>>d1fS%O)*8zhHV!Bc>k zFO7t%t?EOqS;yRm%Nh|Ku?G0t0G?Ka@c-*IA2r5O65oH`y4I4(iRc?b-58^(w%B`TX>Egc1A?f7 zH9`lhkNn`ul3LMOlyGvbStXEXqJ-(Gp2F&!t%oKG{q;Sl& zQ9+DyW6grp`ojGsFmvsH8Uw@TNB1Au4j0CoWrun+)l?x!vUmfmv)y;@7V!U* z$}KB5bf*e(aGiO9H26@;4R}2mtmFYF&wy9$D+x99^SipE+Tm4G<1Ew?D zksw|DJ4o!uuAvQ{C>@`hoffYc;y02*7*8Bm7v7~j21r0*-N#C;-CdB#4lH;9rYkXj z&TMe1P5njG=eH!*Ta}tp5Z*eQF4l0V6LsvX&_Uk81V2|u9B<7oh@^-vRg7H{kIdEv zpCmNG5HsA);E{k&i96C3^A8zH*v1ccxP_aGdFA+_qm@rep*>ubLFi^*FiG;04&_Bs zmh$r=2jtE(L}Gy@T3<8nZ)P&N!O8~3X%f?*N}m4=YtR<_o{ax0zWIA#xOeYX!j40& zUT?C4GVP9KYB4{S)89GOf(FcgU#Sx1HQA>X4cfeHw-0t71OII6-n-gy>em0zQNm=M z>Gu_BVF(`e2S4cbb^${C!SKx<%eF9ciYLWvY@iruBZ8FVTc2-@^AH{F*R@}ra-fob0tK%&^&-A{XL`_cXZ-8~@;}{mt8=~icgX8~ zkg+*}E{=%mo$580Q!d>1&I5`1{&@5`8%h7l+4 zTO!g$&}(^8md|p$#Tygtk6Q1JlmDvhlnMa8Z)#*Wj zVYCW$(jd`vyIxeE7_;D-r{!}ht#Bvht|F?z8cJVqs81A{TxW0A-rZChg4jh_`g-O3 zR=h<$?Eq=)<<*QVW8Z%yt6Zq*J`d?)gHs?@L5ieAzk4ob3^4tjtP!bVH|U8@hQJ#-_#tH*61yz!{RjPUL$1bV>=daU{u>|FAkeCiP($20wIM+X_^K zk(kaQd$=q8b9Dt|OsApIDKMc`W@W2-!zx89bVvTb@vpZ-c43hzD-VOA6}5D2I4R_@ zB_*x0KQOQ_G@tnaAV)vsBkEdeHql!18#R+P@sHebZF6s}Pysy~(_EJFy2|{Cgw$an zNjnsA%w1ktx9U5mFXCeHqgHbX&#gz0Bb`1bCn<{wBTL_NzD9tTD>cEO(J3DND%U~C z--bc{?gP(8tYwYUv0Rq6Ke|2^=r)>u`o*p&=}P%ZVX2Zn8Rt78yt7dp;58vfm#)vY zL9{^DQY?GJvtnYXV&0UzC0wJ2|F>Z9r>AW~l|+}&SmLmT)$AlrKE_n`9b(-*AfE0% z1oWk6`zM;Qy-R&mAFR*Rp$ry^!l4^sJ;yxY*_~~m>XcCiUaeI8nWK(er57kl5F>4v z;74Le`V8H40%F0|E<{Itaq;ubTaGp6pT8eZ$JUB3b*#p=)CW&$^SqNPc&RfoW6^>) z7A>Ge$`S~e49!LmCPtS|Lncay zlm2Jax{k+GQ4mWu+3vc)o)g%FdQ0q(lh{3kPCkma`W|s0QVq&5lh_?wu3m|(j@4%R z>K$Wnp94HA$%Bp)#?OBeF)KR}kz86?CCV-kD4sT!0si;(^ZXj~Y9koq|e#0DUU2-r}27L@~D(@b(Wv=Jhg2B4;CN z^5@Ld-YT#w&fB+UakTl>akqt0rD^Q_2N~40bs10-?#bh7_wbLgyuIRF)sEz$v8J9Y z3^O#<=W{&vwLkdq{G4RZFq=avI3Qk%PqZHZSY6*5s8Qu0R-w>rCy$^A zFvKa8IXVksS#=WwAGf7In0>F-xt^HF$bLM`m|yC33uDeg;}CsvP`Ars(WtG$FBq~%b&hFdS+|uN|UJ2Okv{X_|s1G;2Rcc$f|TLS2J!{YC&*Jr{0eV6{-~- zxlr6@%BQ(39Xz3ZK>XNjB|djl-5;x}ZSJ%T5@Hm#*WB+NU%~`8j;O{-^h?~wC}F_h z_&?{TqM}~gUKGFM{ra?7{GNU__Ewm78%^kV5`tfV`PW-94NZPE_1F88>u09r^HT{7 zfngew#AkZ+ zwS+&I%{#&OMc?B5qkH*P4^qCZNu7+_2XOP3$Q3>+?3g_(`19YpC(qwvh|KoVr4LTe zR6kd?DO*%yos?ntv5c1G$4>a6!5Y(#WxAb%=EVuLI%OVPtb47w=r%k0<(@-kdeNvA z6F#qKlY|pAWP~?r5H<|&f!f#^6QJ(QHi;Ka0wHO~nyklMe=wmbyDYY~Wb|HpTvr7X zX-`JsJx7zOrcRFN?~z#P8c*qc&niVRPTjzv6lkpv6^`@YCf!3+M5g&t5Qf_)13-hM zbZ}I$Ub>B?t)lBk;Qq|ChRSipkf7JmCK$$?g=BgQlKI!F$C1W)UgnN9KIb^l_p#Ti zzW?mtlrP>}z!I(l5ZFP=hS&}+`-F#l#be$295!tI+oI!b8*krDAnwbu3BDWpX~!XO z;K(Iu{)~L)-k04|}eaGjK0skg!|I&S_ z7#YUpV-hRS`Q~EM*X9ck?5~2%bvokR}jn7@)td4Z#~(`Kl>H4{5&Tk^#kI-t5KePW&4Co+WjsPKY8XF z`~m4jG{~WG>;?h!l;9clViy-|TyI*7#nUn=e9eulGNvQMQaY zeO&Fhm`c4WN;J2~V?H4DKEi2Y==sLArVXsz1(yf7EscnzBAGPz*O+EYW=zeLkN}9L z@{K5K6TLX}?7L?*UyX-?PEl~6TphPTxbQ?FGTdlp=}IY6ooPuU`T+7grj>EA)2s7h zMPh2kQ_Y~fWkhj3ks-J&wO;>4D5^TJkaXW;(rRD4dTX5gP78F~?jFbzxl`(V^=8d} zQfx&mnk~6QjPo`$LQV^B9;oqSbK1Q>z4Nm<;fgK|#S8MO5=|j+Fa;W-NjdvTyLt(p zCMnI+j`f53m@%p0XSD5bP7M^HY4K5Y+y-vIv}W})6gI`;Xz=Ki%$h4&s_LE`;Z1e@ zU}Ma`&e%2Izj)GDvX_c0;8H!MJpED9`I$qpzs@7drA|#H*x~bnX>Vj#NfBUAJ@a zI;ZfHoG$fzTyQ_Gy%cB>!0R*ZOI6!;!SJ%*p%u&W!TUq~yyuL|g~aKZmQ&UZy4)!P z$A3@i^uzMYQHl~q*dxM-fP4NxfS*AbE}jQYYB!#TbFNn&NIF~<-O}o`5DeAnt}S3M zty~()G&FG@<{vnLzUU#`fN7s8KKM!?SIa_K6KM0JX&NRgrh#6gDO~bd%lZChi|L(& zn25TchQaqsyPJJS&~Ne}7oqJ%h6bN|j80C0Lu=4ID}dF&FMbw7M4=&0jxUCQLF%hO z@I*l}2QKD6FGN`uOCVeED&ms;=}-Q{qrE$#=f9>k@;C|A#6kj&$Yp9KNgN=;XdYSO zmfnt_r~5Wm*5FV#uRx$?{&@-~8ga(d7yveWl%6XM4KM;$jLn&prPH~vh=r5h_XWg* zz_`yTxiuht2}*SflX1@>PLc0q12xJeSB6e}T7iEfpVQENx*YPf(Y``IwqxPuEj^?TLl^~F?!(NQs`*~r2?2lzS9sSWo1hk=K3ITdr$XP zlyCuXplZ#*%A{T#mwOJviHBrqsd+xHYcHu>>?=kB?|p?jKndr3eL838eoqdv-(Fad zY>*ubK+R6MknQQ|?RyPIxF9aRGpY~pG`vreSTO6j>#FcC{ZtX>irAp!M$f`PBYbiA zXpyjr;B9q~0`>759c)h0{JnCk+iIo7?l|4j>85&yvk-BgGNrYmx2QEIkrOf5Vdu$n3F(>>Xq!7?fOL(Ht95( z(_a$nd9{hLn|p9#uC%73mxtE+xn#M_-rFe`U{{`uX)v5Wp)71Nl{dD!9ZELHdY-f@ ziF&KWbsva{+xwBj%9uztv?hfREAfr;ZjS?lb2~vvnq_q^B&M|iP-~**!wMF;B*MgW z)%uJMIu(;RQdemadGvcTaqi&&tF(no=O6cVtXA$(JC6#6I>kTG&_nD;jy)^N7);*= za)PKsKQ->LRe*X77@s)58{|gO>pxEu^2BaFgU0&NV^wBmPCM%oa)S>Qi&1&w&s_X>+785#(k| zq}i<<0agk3xjhbsDWX+w!*@$u9KRI99% zwhD66AS`nbam>54Qux`oIUdV9yDrR29`b+j5|GEWQHo2lTRojaXTWqSV5qZsyO+uM zX#Hr_m%I-{e>t(iio)5SGTc&XoO=AVp_|wAg=>1;*_w?)(=Eo~u2fqFD?&m2p!v)G z#L$N8`js5yEk=t!Avj1!S{@thxkNdnH*7Z|N6eTIyVS60L06qy`t{C4_t&t^!AIwo z@B@f*X6`HSmJZ|b>0LJMQ*};vb`-8U68?;){#@;lb8k7sqF=a~YrGP4?U%4$E&rZ- zcm!-c+C|o|yg&ej-lEvuRs9sa}iCC)+SC2JXpOJ) zLvWZ-cZe{){T>P7i}!=aAbHgY@MvGk)k1OsPYXTcKOK_@x2wFf8@C$kr-`mFsG_d? z^Ds2E(WN2q-s4E|V06%EFQ=!nOKfr|5QTk-`q>pp1hzNcqje;=&G#wMW}HVh zR-?Y=i0U7l#|J{UD(zfxZJd~eV~zHo?J(XW!zE-N`in4LRryaojU8K-IXxuj|FU0t zba(VEJ_~pM(^7KQeQq*H|6})fgCjj?`U`u^w#ptx*z)Dp$k`jLF7&Ys;r@pwWrABG2{e|%4^_G$Izgzay?1g2m;qK=~A_=k@ zw2)Wp@lT=aJlCbN1-Q9E;Bsd)Ievrg`T60-nk~p*d{;POx0+5|4>$ZF?dIk`orr{j zz-g3P)|=Gfr+vb){Ko)yVUIuhNL*Od<%N?b`PJdEv*nfqROLzMTLsNb&oeI+ zvC2ACwyNc$0*IjAN`TXCjeZrTWk%~4T{=zCfSw-8L<^$0o|T{@t%51N)JL)qygR5` z5ocR{|EX(jNu+pDFA9YUQs@NDYvNE}{m$U=G3kKYipLo}5>?&5 zT`8b}r-1I3s(1AO-Iy>0|4Ec);Yy>YMlSO*C)=Nnmqkh5bkmJ~(gxA5J7Px$|C3!j zl?+_7wwG>BZFg~Uhxnnb;7+9B^AT!pz61CSx^|}fZt;Pn4!?{Yh{lsTGcd$F)-UbX z9*Og??iqK;`{NC#fG6S(M|8%Yl5DCTh#T65HC?nr@5TgQ2x}VYTRho`tvA$F)n}R6 zWq_2VXHbSg{_9!JXu0INyJQnRNc{B#E3?Np2TA^iZsI&=RHgg8%(3Orzq)|~-h zbgXz;@c+7WaE~w}Szi#haE)^HRpPCBY@Zq2XYQH=x&oxej8flojYWKCM;n;o{isPt zX#YfAkT)PJ)V>}dxPFVYuxRbM#}Z9C7c^QvysOt#6<*s*c*z3nQ&d#?R5@+9ct62VWR_kF3kVU6zJEA1W)dhMXVAPT36!F5>iOt% zDy)Q_^|&Q-*=Mn5uf zehbw{KQE+5_9n(;ML;01yx%N}({V@g!-)nlKs~h^XKkpymJMBpfq1`x)n3l{7ze^9-vqu#gsM zxB^;x!!&)uKcj-1g8TN)2ywq==)+>NRc1;p4*9Z`G!0aWoEUx@4suNwu+6hi9G-xd z$XO_433!OWetb3n!RysaWI_}!d z+77I4XMWY{H~oY)C0V|cw&P;bf&_88`+$oklF0+)0C zK7U@73%4_D*9yvpHHnmh{4MY*mjuh+KO3QylFut{9tdW6uPwp+`Fc-zdDQfI>d)<( zS$Js0p~|03sv{FE4v;fEow4xf1*y=l9@Tx!Y;^A+=yj|on9EfwG1-gS_UJ5Y)`fG495)L>1RBzqUdW9gf zn#SILqzgu+Cx--vzBtV__yL7H))d7YS^5Q4w)AbFTT{gnVRn&y;k17z)*7q+=$N+v z0ba1jv=>iF`-U#fKg$k^HO=96MKVD%^8n-w|BO>8+PcplV#j7D;J7=6QV*yt&YKR{?Kw=s zuFB5k+B;O+hq>eD!5?tn71_FX%l(E8o&eCrq{9>8Mg__0HjNXn5!Z#)q~H2UXhXHX z2(qp3OZpx=(y?*GmGiI|u*sLen+Bq>i^w3pUeP^Fxc*&f@&)hCk4g-Uw7fLv&pMJ3^{p# zd|0bG#KyKQijCb#=Wy+&sqwS7UtG0)n{?nPa2PqK-ShVRO&?YK=2o3B(~sw~(9te% z-u!e{i0F(zs)O8Qek1tN>_kvIiL3V|pm2RD?0xPazw(^PqekRu&_ibOXdGq)JZgh^ zburbK@YTQKMv$1ex9xVi+%=>1`WioGx}KK*GcxY)?8($>=8>_-bDfxj*%tqvO0D0Q zj*mw&9jC}paW?fVb*klKjl=k5kT2Xy!!q6l6=1DFC>&xSWjPAcbO+Oi9S14`y{gj< z+{|p6o6%Zd!6Rl0m$|TkG_+g6(Q*V9dGSq?>4_A_9}kXFgnx zTG~&QB-T|T1`}#Y4&aV_=z*r3ezquwFgI}^Bj#wBBdu&9Q~ONpvl-|8{(-u&B*w3G zUVTMst**>DJbt>nm^b#aAl6u7NPyQm&@D7-;HP2(DYJ-o?d(MYT9C1ja_6Z>EfV?l z({t5FHdOk7@ZQ{=;$_)?gRQb-WWiXK-mw_-8~-AHhmHQ!>X4TlP?SH zW?9_`>-xm|#JVe%X3`La7saO52Yq>cb8rm&vE+QXilp3Q;WIE_bSn~@7N1Ar$tjy!pBLe zH+%%B)G!3B?@%oEna}3!E0xVO6tFrv_f=JvnqycJ=Zx?-v)WNflIiur?SF~Gc_Dp% z9gfvHGkm>&e?Eb^u&y!-8VGBAU3eRcW6qvz3yaa*qq$tXIvy$QZ2w5gbD5tlplpO; zzJW7OI3J#@ml+#|6Dfk)^XGl)o{3F=@t)|RDDO`XiJn(=FknGtea@()A2gs57yCR7xl^1B)gd z>zE{xZRU5#E>4ti_K5+WmF=GSpElF zS3c;A%*HeHmE-EE`@|%v*tHH|_^mpfT0=tkCr(VR>0Tfo)MNET{$tg|Hk#?LL+S{K zwXGRwSCKtp?k69}Y{LEQRiHA`+|g_}#yLj^t5F0c2^G(dEd7-~(p%9z)N=*dv8;+Jt4jB+@j9y07;I27m*XPG9w;Xg+R_8Yg%* zd7V2-bp&r}|c4?Atxj8G=V5TKjswy&e>1Ma~h~hv9XJMI_zyw7}i7jkZ~8`RYN6eo?mkYNK9Rt(lA)L!}~?bK>8K zN#iPpTl5OPsxsjbH2sY|It~A`@GUD)WJ%5s(CijV;+vRRteZ6J>pe=tW4kJS`%U?X ziWCow>VtW93I@`_taV;%t1Ef9*(b?+4bpdX%x`C{&ieC})3qD3Qi;Wp!4%Bd;9w|= zU882xn16J8+&>|yhalM9tyJSN#~8}HNA);y_G+!-QW9?JwF4eKYxT*;AqydnD{}#v z#{J8EUtWEfsCCSL9fHSvUA6Z&+~FL*<tjP=1`|Hx$&VfXK{}DE=Cz# zQHXcc_CLXb&gr$==qexBt^n#y$=|1+WnV%Sfn9_B+*)S}J%VC~Fm>H2XW1#OGa^WR zu=9hz*WW(v7HwVGOm(b?9-I+A4#&;x+D!ImX!zUdI=>=A7j34*OC;+9jT?1Uzvo$M zl*G$=4Kl31QndPExa62WkmCBYk>VlZd>nqL7Hhww)67_>l4-24+@@n? zjVW29Xev&pGnrX3O$%;7F6E>q;;wAdsiY#cw8V1ZG%Z#txQshXiD*hlX@Wb6A|fgR zf^6cK`8*!qKLCEX-@Li+`*mH{^J)hu-%JYL1(+ox+1VejZMFa|JtAoQMWw4FCNiNi zMsAM^kul76$tSXVU--T6>bl)vUsT&%tcwzFaDw97fpAi+@GGq$J@2G)m~-J-sJDv7 zjJ7=R_>&#EAg|V(R1eg($>J);dy1*t*ue|!u=DPBtIqb@-f#;^J#&gK=n>ZjwVgSm zeaE@ToV+xf{BhyByrb5WxDq8>KVs#S#NKj)wZA{hNV2$bFza9Ep5whqYWk_F?e+Ze z5u&T3J>-k=hc2!l?^yO-1)Bjll}CS)?|)rzCJ%51Or0_R8Kiy%IG^`!R~T-;F~I?u zdlI}e>E4&k;Prys$mx9rs=@+4NkXXl(^vDs&R4%&qtiy<>(norTyp;@V_g1 z5E>l}qeL z0Zv&7W7=BWm^ubvR~{&Rq2^ynS`H6dOvrn^31s=-nsyDYIUsgvcE+IkJI@1`JIOqqawc&n{>uu1u*9Oc1{S_N7qz(cZX^sfi? zEc-(Y#Ter*3Gc&I&j>2W=P;3{``=Hrt!{)xrqn4fxV(Oe5F(YF?MUNRm;ANSm0z@< zW*HN7>`CJY0v2QJqcT-{*|nSj$G^z!2+_;}Wn@LR7fqg$^b|04v3eChuJsKHC*YS+ zOe(-=&H}o~&SqbP8DyO6xK`#%TU0q)-i;#<`6+isPZl^^P|K8%3T+)@Y?t`Ys*2|c zQ;idG$>w?Vo~o-coYYoDtD9Ap*I|bq(NMUMnaboiH+Xh$mAWD@#iHm*RMO;$~UQ2OfT0hada}#os)1!t9M)Pc>a)e^i(|8@~S*kB$H&W*=0fRHL%z zA;TbBKOv2=XZWt0fEUmgy^XBsItkr1tPcaal%;zXBZu-DTUyx7_?|<0mKMEwH_Tej z@>WX{3HsN=J3aXn`22)xCSmHTQz6_cL+J(f5QDC0IhG*+pxyIf924GrXvx?%8mhmU zS2fh`Gy~xyC|Aix)|Lf-a|^d%q@H8xi=NlY10FNvKMR>t??jFzK&!qD4cR{-McyOp zF+;cqKDcaBfl+ny83>ZCz6|1Pf9NBN@*XJ$x#-r(d#Xf+2SPh|D{pGAFDkK}z(dCU zzG5LzdSzgh_j#nNTe_PYRO0LJa4W-YLW2Pm==11^(~#u9lLMir&61v`wv=a8kT&SE zvBF95nE%!)KXx54sJnTrCxQ4()F!*z>gQWv)3@IXXS`HV{(Pk^8Q$@++gLcyX~S|( zQPw06BcyLEc3~ybDY6|l=|vXba?90-7i!wt5#0Y1sNx!saLVA+Q^J-O)e%69dlwI# z`s2lxTI}TeE|q(?q1bA;@lZj+DxyUD+@C(Sa+Grnc@JAHOmYlpZJCo4K^`NG-{p>D zg=v{LccbZA52w0}#CxzZN#_>62>%z16Q}UZURhC{PmtcgsoPAPJ=~{0qO`$Oq4-f; zq=W*%QH~Ga-HNpDSzbakEXDdU@{8uVt*rwQ#GqoQt3yYOr9YuqY8XoTKigPiex*NE zAbu-3XT8Tr6|%C^7jb8qc1G0_8=d+qo45BgrdHTAM!F2gNznRP_LqsX6`Xr(DX}iB zyEaIVQ5u}PceOJ0JX1N29kN?kP+ghgXYx;#xeg9OTvkjqgx0@+oW1Hh>$|=T+}^Y= z|4>yC(mcZ%rYq=Ug~I$B`S5DHf^o(B=AC@@UGcq`Rx-b=W@Lwuo-_5lTMic6jgFw+ zafViIj8j@@^g30LBIhAdRKKdIqS^m+*x;7MFD;we?T=F#49$mq?$ohSZ-MemgBFZ{ zq%331V*itOd7k&cl)wF<740*VHNFL~j`wy_@vLkJfq7Bz6_CQ%pA8+rbs}r+%A0^MU2E|R?=Bg> zTK;YJ+}rkN^t%I^2E6Awm}oJ`o?Eq3Uqv@Vhx~$Ci}UdrWWEPJehAEdb`xUB|39qrFx;Y4od1NPP<~* z{B$%u?v;Az=tjE&Tku6GTB#hkER~mOE3UgtJenNBxTQO&&Nu}&0)b8k18moK{eGq^ z4q;8YLv|ym<9nsO-WR*jtDK7kbxMSXS7vC5ov-_luCVktK2e!V%G4-tp$MZf2GbO? zkdXj{=+_Qqf*4Jg10Qv-UfvqI;l{h6@4vm5ZF|q-hsQ);@9W?GBkKCWb#T(R4)?$F zpS@6oIwn|kkP$rXTeWA}-@JPB@MUyg);-&;2~>ul=Lny<6y@I4$L?5IY}BcUMT%bR z>>Jl?^+Cv5@>Hk=@lwTWD`7ZVR=zdIELiAvoeHE%ohS= z;uE7Z#B}-5`WpY+96NE&fj_3Mi-NCP(I%tfzli_$$_gvWm+zK6ot;#Cq^+ki7li8v z0lTdKg{f24G$0cFzHCV#Ch{1ywhl)Y3EMA`v z+yY24adstIw{)CM1tB!I=P&!mRIJk6P^*{=Fv9JD1lz_R%Ff$e&{qm;E{F%p7p@jWw+klQ~OS{f%(a z_}|`p_kTEqKErk`2a@sGr_YHdo2V!|B-u zYy=T-#32av(86QVqsn1USLy_VmmQmVXD0wXOS+peju~~OAd9vK3nXBW*d{m`Jid5` z_dqm5&(_l@nmMm-2uv6V7*{~~J%(R8+MLTY@+ZqXznA8159GrVJ;O^I0yGcv2My8}*Tz@*%r`=uu z2t-+S1-cN9IwPP;$r~7~OFCC0myPIv$BP5pr&S1%NjYy=ss!KVCW-W?vkcY4;ZdP> z=v$W^y0rU|ZQ3Ti4Y{Qb-j{ZQUX+${fAA4?44Pos<=V4{dR!dr7*Bdx<_XtTzb`;9 z{Enrh9@qyl=h+Byu$Ey7-hAtYS#4)3Um{Bpos>ujkYyjy-PQ4Z5wcZ$erzTbLE`w91gJ`;o!E!rt1#-+Q5Zk-92XqC}+>Jh9xe-Ue0#}jw z!~KnjdwH08Y5QSTvhdr23hVByVi!!E;VH4=0fg4p)iX*v#CC(>;Q-Yj=7H_Au|3Qh zo-$FUkH)QQE z;N84Y@qpWe>JYfYeerdsMaS6(9a5*{VWM8uJpqiY2{DMLbAtPFy#RH1q|p^HyBzz*n%G9 zb`RN;0$I3&(zzY3W!_6*-NOKr+y+?h4dGOd=3Ls9NU~$a*7abgg6H7;$~j9aIMO4{ zw;6sG(sHyq4gE1W?zGKNDdVGvYud+lng?_Tl zoJ!o(ve+xLrnzw2BP*C2hx9iWV&yOV@FvxM@thQW(hAC2TSPw5O0voy zpb_lsZE>z;b;(=GYG%uB$>nXn1;_gbd|;o9wMXpA(NR+|7EYo=Y@D~@u(!6)kcju& ze6&SU2xVRJm5P6+rT)yczfYk2V)6|q?a4%+hBN;|hbhDYv;pBzH$PqZQ#}3lvL1VzZGZ*)1wDJRJd!?s3>KNK z>ON+g2*z?yk=UM;`&>tU7YZY!R^_S4xfzuE zfMMcXL5c<$Dky02$T#=5ZMssCdYBSxaCObN>@m%2SI)yfyMKXadaV5W-FKyKVTqoL z?0r}O1mFjV4*1E(H1~~=L?NF8coVKo1D73#9K#uYw>@Y5)BLCXV<$C-F0cHc{qOt> zPVimgzx+fg@>^Z+VnDtrtE-~5)zN^fUk<${jJ#d<+cQ+*Lh=DRv!{6ej~}rC)3v^r zey}dKqLRM>{f2lmt=vL)oG=%5vqz4_26+2q$tf3?pw(X_KmSGELbxuW)h%y)X}h-P zI_saG!G5OXuSefSw#q&XzRiVc?hE2OkN|n<(axPIuYbW>U2n+r4&$k=A(G z`XRnP4JjF|$OM&0g^UtHzyD|dQQQ!2o4}C9S8j1mELnTBfTJaQ1|;oGFy6m_Pnu4GR{3wHT`1`FOiQ0xP#rzxMj&{G|1Y8S*Qz#S}?wku91YQZP0XY)*R~2_AzF|1$fX2rLTYVziOE+bp zEzawZ!%41FkD-OkgkL9OAwA1c4~9?bJL<0##NlOBMYOsx$w_EgdKv`7c9gYVUk}%M zj}0*7Hm&qkE-U{>HzTqbz!P18{4rz&KxzT$QP@CH0ZL$U80H_WrRbyTx1B7v)ytK z@Ctz#?M_(S51V`)hW#i@;WU2vRG3L(vz9Dirut?2NeGVu7pYL;bI%}QPOC*)#a&b8 zpYtyO_B5>oWs#0IPZ=y>djIc{o7Zq&+@1oc*_FhNlk-7%d1>CgV67mbijt;zirC&< z!a-1?LmnP8_2i)!yow1*Nt>K=n9o!l zP#CBT6REu|EAd{ozP~bI3&;U!>@-BH6GXxStQQkYjaYN4V+b8X?v4&=5|~*F7uuqW zM#*VCbMc^0Qxo5nLbFMGr|zEyQlf`Q+?7YuE^FtYa@U;*ja!^oE4LI{2+7yq1kx-k z9@N%SO)W`_8Wb6nr)EIr8Ml2Dor{bc;g>Jg)pmo-?Z~Q1x~2Oi=57Q%FT#>sJ{XXy zlf9pjIA>P#4Nr)gPN^8~lwhxTRpCwVWmnW7s#xYhk^q~xG*C1wrjN~KW9t`i{|27$ zncWpnHTgOViUIaPEWisYg`}i{s9t z+V>{QPaSx~q16`qhUMr^6VGABbbc0EFR*>}uOX=IAz^phMDA9kyq%)ncq8%c_pUQc z;COgA@fl!7#{Ln>s6t|8rivxmSN~h%t8W6Wu^BNQq)B0@C{JmWl#a4q?ponBh5}Km zYS$*Lt32o^)9g9U<$!|>xP1XWyEu%aUt?3d`N!VzCMngKOL-1gRvw^UMFtQ@O|0e` zo}&`+ALh}o?M33xI4e82@!|7!&jB|VwKWO!?ZNC(n^+BMvE}lOPbYycIZ~%2JWC3i z>8(8e79Ze9qel6K(;W8o(X7`sbbFNTiAZG;Ghe;~CyI7K{>r%hsr7bzQ37VjB>OH| zuSh?bJ8oL*0op#@^iLOpaa3px>FOCOKl+6WXQ4&e zhx9HIC*D1Bz`AP$#eC1Zjuibqf9Q3BR6V#Bkhyl$=IP766CZt$pR(;K-_&lQ`1bui z8&tR8x#G`gY|S#8W_?|vd4bk(L0=k_aq6{Yo{Sfz8*@Q#lP=Y>8~R>(2S3~AnP%C* zJuK+0{J3hM0sRleKZaMUMCRGAP@ddlM-y%|uhvp*w0AYk6-^kk zzQhIYb(lW5y(pi*7*>`P>5;{$u|&1fw&)V0=_lD0Kw?P0b5YYDQ3wqHz>DsZDw}l)AryUEOo8>gl2e%H%!lo z0Ij9%!6o=W9)cqx7mtQa+jzklKTK_#=qep`TKq&6EpE?1gS{w^ur-;K{z;o}!ke_Si%T;1C} zxPJs?-U$BgfYz;6Uv=VU#Kh8%%&rJpfj8C?gH^-*yq>ira(0ML?DId*IIo+08{qMU z)=B@5&v$Z3|M7pmw0dEM2Al;1Dg7_`|KVTe9~#7d`YRxS(5fC+;8zwRP*J{1meT|K zLBUuqupF^xy2EWu^^iqg4|?YiuKB@Ys_=IFXg%GlprzQ)YuH20OifMmjc#kb;n-Fu zD=bbDa3@f7YW}OgZm^lBVRUu97A0l^}oc*bZV5! zI{n9?`fZl6>Pn;Tgm!U3)3eW#lMGEmV+!T%+S-2q$!)=1j}Fev4SVH^W_l`O)jnMX z)OFA7VfC^*6T6}wkqLmYWO-DmzRS(g_}##Vul_#^;BhaQ^+mZ zdnE-TRc^Y~X0)Ai)2?1vqz@^$BUDr_MA@S0Xo2SNVoiG=_YT2Ud8WA@8!bcc&+q$= zh4&Se$%?>GpNmLpWl7^>Atmchc1Q1uwlRE!ZHF}Hgu|D4Z1`hF%b|hpM`JC6U|>U; zp4eq^UTxZ6G7cv;&GS|qLjt>^>Z07@nojssV-%K2I)b@p&9^w!l7C6P z?8kM>%|8wEgX`JuYh9Ov-4P}FI4+rC?>cHJ_6YKhpR-!w23fc-HFQg;VO3k@C!0Hy zzGtdYyEOEnYIn%s=uv&=mLz)vWk>AMLcl%Fma4474x*XqygVpA+Rg+9IBC)qj}=c) zSx~ewO&VKKaz00m_AwR*4i{bD8P*!HFEM`>0hD_u0`j7!bORkFvV^8Bjw$=!xf_i zSfKOx3?E^x?We_Z6?0&Bli_T+=7)O=JN<0q4QD4vor#NCFI-_mnrgoq_5t^uw0XfH zZiDB;s+q&?-|#mj~g~Cb~Vk|O`MBV{IYNh z%VpR%e7eS}i6Z+}r^JB>-#eD296V7s%*Cm9lzyP4*S9S7(++yI`l(}row_YyESO=B zkw|qmN?;IwT-(ceiL+4T7s3-ZGj_T#IYoIq2O_2h>@}*5!wCFLmaPh)%WeMcbmN6{ z_Co?8z08$cifR%Jp5lXt{niY&fE3Iwnu(p=FLe&oe7eA%BS8ZvvfCa>Zd;AcT||zJ zAZ5i012OPTjEHpib==_jdy#2E#Fzwc{Ooxr6&=+tvTag5X&BukhauVqi4=zaLntoH z6z{e}I@4pSA~Gxf64q~bB1UscKvHUuef=5*51Mlf+sRLXo%3{2V=e%25Kd%IcPOJI zZ_^s0%CNnQI{EHba^`xuss2TKdQuWZ=oB(E+Pu1Ucs?%=#q`Qro*qcAB*l1cb581( zsMkg@XEh6}(zbLb7!n@=rc977B0p$%JA~1CupKCVq+bHjM-lZOmhslQOpgyT?pbpR zd8OCXU!|0N^`~f^v?y)EfC6v#e_0Jh5mtPMau#x!;(di{QA$EkfNB{Dxsk0XLfyL& zGf9Tpmy1{k3xz{u%zJ0)vmz{+kKR1fM1iDjXc>zi_pdeNTnz9E^qi9ZIww)AZORS4 zyZxL6kr$3s^Tz2WeLw5y*B>&oiORX}YWaEIlaC1XIqVmNqhFUXc8TpXmI-_^29H75aj(XKbn0a^%DkAhZ2lR!x^pn%Y*9n#2KpvS5BPM@vFaOu6< zM-E!+eC?*}uB>visi}>H6LDj%eJ9_K`o8jn)He9un4}X^9cBK2S&aMb<{h9AW*_pS z@4&G*>+YR4asIj|YR?V{ih3od%pw0mWvWLs*5=SbJXTj+%4kjfd8y1-N&B6YdHbTh z-QxVFPHqKJHvQ!sufYzsd0a^)rj$Mhn z6bUP_-cU6V6)hCvGd2uGU6TH{Q(rbS^`Q`Cza06Ni&%h94`Q}bAi(Lw@}!kJ6>swT zYLlLGodnhvJWJ-E+~5zQK?8nu^Ic*Dyymt89jW9!EWzASuu6LNm{Z|20Ftfqak z&jarRvBulR8rf~SMgkty)&aJ znszWwSTa^NlMId%M%4*GYg(_K6><0!Y*Bl`SnX%(lm@fXZygu5w03q^h2M3BrqmH0 zmZZ2$)wb|@<_;ncBLrEQXQqBbq8ub{)QU;~7?IFj>8<57^^p@DLsSdjCI5VY_V6au zP`aP7XM5RLN2v>YI6A6vA3G$@4FG{WZ~H;OWB>1nicdrWya4}k%Ce3(1n&U26T@(> zG}L_h&w}+myP<%8AHPR@Vw(f_H39G|JNOT)BYp&>_?-aRQ=6Tw{9o!TEyyeeO)$^G zLRhA_m482N;(a69L?VJQAO~iUZ4>aM1#!$M@!b}TH;#(Tx&rfT!36W_(DfK12CdSp zS}z^lJiq(2lvq;$G0ZM}p*elE`b{zL>QP&BM@Shk7$n61o^pR^eR+A`rt9Q$tpp8> zpjr6!5H{fF><2~*w?)%z#XR02(sh9+vW|w%@9o+hkv^Mu{6qY&6yQ3~qni_{0K@0W zaALBIkvz+CRLYK~MQ&SIC+lDu|9 zVyx!;ih!As>K(6SV@l9(P83o@``bQ+V{Kv0p)+#3CR=AS$pT(wWEtYUfS>~GDt{wW zg6AB-qgz)uJ)@gc@FdzY_cap;71Lc}sLf_9ZG4v%=0((aTwH6?Vl78nl++4C3A@@#RC^_PNW4Jy-i4ZW!rpSF z+9Bj`+XH8!lg@PQE=yaE=OH$;$^&X(%~=wF1$@GD!fR&7EtV)-PGbJda52fp-shh8 zwax8g^Ac>jLniVje8OcuF`1|Dtc)ZFGfiNmPV;9Ar#fF%xb!Bju3@k=q21OrD?Vmf ze({+M)=vucVTN}rm|(Fdf+_DHIT-?B0ylO-{hqqz`bRK_XVJg24mzn*_Ob62dD@K~;y!q;$QjsvuJ1WEk@Lva zp*51j$!wi*imPv#AT^2f-Mo>vrQ28#WxH9wUHungoRf$%?!Pkip(+qiFA?tQONpG| zNfIrv^=S!v?X`kNo$BgFry?pW9Vl4Y)X0;~N9b5Di_Cu-w}&%ORE3;x;Z&AE3!!z% zQ|Y({j#?J>kZRoT7}Yb-a#TK-o;Sa$b0NDRr!M3#6=%{ve`jge%JuHF_H`Fu`K{9oFA&^#n#t zB%gG~rD&oh?W@nYAV_Rk4?sp9z=6JpA-or2QY`r2332BRmwh42TgFO3{Inpv1wW2C z3xMRTU_N7X9~EKjJAjSQGCT+(TDlt?*yYT`6ELZUZv$E6&BSd+35cM#Vd6nMDXK>? z8i_NTyLQUzy}OImPKx-8Wtg#s;mZ^6OQC;jkQ2Gc0#Y3nfG1AqZ(znFM%PN?q=zh@D?Uygzkz@hsvC)f)60L{%$+*51d@fsp{iVsP+pllEFx$e587q${dOW=TCmJ*BjoWCY4!lF)GEnlyH z{6~^n=41QKFVXKBKq27shZ7HvBSP!8G78;{s!8E3a9l&i(+{Nfx_SQ%{*nF<{l@&x zI~>-0l!1OTUCz7FXpKAiS+=`NxW0dBX<7Vl#g|H=t9^j2_nx_*t5{di_lMSn0e%7e z2lSKmyPQkLNvr(bJCf2TVeM#~e7_E1>o{vI!%KZd*#m0j_cN38Unv!)J_S8WR~hTK6a?xr4NiTm zZM^Xwf9W^c81ow)880JGq$MXmb9VTT_8PnPB-(llX5+R^qf2Kx5&P+vzQ`{hQ_xTA z*7a<9AeZK3g(c^~BLe1gJmlYWkCDi7=MXG0T`xa^WRIk$uLjkbIHQ1N0o4KHeQ0D; zls4t0hzqkcaWIftG(1sA_5oXP?N{XszP}q2~ z3rvso?%`3A)K7%#4@WYG`+-hZjQvL=z7Ii5xCLjf&HH*~GND1Xx*Rk_SHxdW#Yujo=)|fBdK!8f86XZdokIK8zqk<> zLRmC~a?$GNazwp#j0XoMLJWvuS6rsfn+3IV$4%`00V1*C)_Fe?t4udekGct^_Sxs3 zO)ASM$N9toQMWIHJCGCd28Ki=r7+S`$NiMV2W}ISg36jN{-J zVbRu$t(SHIX{IV0TmX3Q5}$ZSk#! zWK}~k_r2h#wPo&xN;oXieu@5xCB&+4ZC6l5DsH8B*2?OiI_?34(%LyG$e>v;Jn}`< zGz@@ehqzl^3PY&e(zUKIwp>lay{p81PdqgF1SHVBZklU!&!uH&^(+-rvg)?TOn3}MkfXAw#7G!?91?)Z5AoRdAajvu{v~Etn&)KUdMflpm{c6;i{>q-pvQjWJ zEziWh>Smr9NjGuVV*-s;rpbM%ErP*+9$}@_59~yXuspD6uX&(pKwxGZ>tJ0(D+gVs1IO z*w3jE#2M429^e(Zi*?m#Ye~*mzMFr`SG}M){x*IhOMl;vjM$89;_0XD_8ow@Pv_Ti zdx}HmRdg)P4NqdFwrt6v3(bFp0D(T2w!s#rqf1c$cUaS*j)8N|IOSxM`^CO!-TSiu z3$@MLbvT?G;UKxxt`vY_2`P%oS}?RtGp;MoCQ7*BXwNT@0v_rob8W z$--KB44SpHiM4dc53i_Tv}EbEJzTB=ZwZ4|Bfc0d)QSSiZ6ziGVp6;lQ;e+^odeoS zxz}xRZ{RW>1t2&@n%UP*lP;?j=GTaH&(FUy(`tri4foRUZ+*UIlW`BM7Y4yhjt;)Y zTUc4-vf7q37@eHPS5BRS_ZZIN`xP`$pW{C!LY3SoWt)iIw3vE5pVqKx<$hM{sv}_~ zq4gy4k76hNK)~vNV&&YB95s=i{4y$rSHAnzidc>o)}@zd3S)z>xJ-UtKh$?B5kdR| z3@eFGx(UM{u9%T=k$JJt?De@p{dGi{L6?~J_VeTIj5%aM#y*bEHfd-iIL>`qGchq4 zDs{^#5UueoCkhh*8iO0L=?nM9MDdTRC+W968OE1t@5zi4H!6^8(8kt=pOc5!`IR|? z`Q%;I4q53}0>}GCUeTCKMZkQ&J$8%ni>EirNZ*uCUKg%PbLPNFrtz4pTR|QFC8;Zp zb%bpupjCyr>)Wi2M^mTmw!i*9PxlSGCN_x#gjdL7jM&EsvtaR0e1!iJX8`$fB>`lk05LV2!9L5WY7yC&Ys z-Y@<57k2VW_g;jB%Cwc@{{1-T3XEx4Dw$9fq+ou zjCG%QC4r?)KoKwFjEjK^>-B4Ycdm?rR}Am^0Nbrs3YokWSERnT+u~~i2WZ*b0|Fkt z-i{<@``_bCCM_HSmD>U`2(4427>9ppc`Qd0;y!QE=j-|FTh2j1DbcGhobXuFH`QdU zDi~?#w*y<<(0}yZ&jap=w6av)s!1#z2~{R@IBotrwBAfmvAJyI>L8MV^Q}A1LD(OC zJ{}bbac!#s&9##wLn&wVE)Vqg+q#q)MMYQf%Z_&l`p}2!EB{{;dFs{w= zDY08ZPIide$bn<*+KI?vP-RLTupOd#N{9NjhbT#~bhZtj*_M(UW^Tz?djWN4`2tH9 zQz}sh@NLI>u=W1^WsysgcceFlqOk8M*q*I6H z&b%Z>rLq3X4HDumBD6E43n7+ydtfG}UieH`)7~2DJy}R1BU=T)qzpB+JiA30;NGKp zAUoMY+8R>dlGnp>w3HE?U_F zm6s>($labKyq|~k{~hi(8XW-^x7DSA3G`+F6hArH#N=?fan}UO1E>^@=58J&tS^2) ztfdq>VVbo|(+rxno1=-P`OitInBF$OJ*>I4v$5H|XA9?ujGfy!d_-8bHdoErZsR_#<a#uZ%3^m-@<*^b$!hynb*G26w<(4 zhGKhz#j@d28ZcODAsBh#yi)3VgPIM|vrDgCVl7@E+P$^tPK=T&k`%+|wO(U#LiX5` zdN%xCav>C*W}&Rj1iswl+?rkrD=LA5!0IK{R^j^z=~cgCC(3eE7|62bH$(_|ZO5$x zNW&vep`4ICFk2+umP|1haT@!^x7DB{gEq#b&PUQU62wH- z1I=LMm<=St<4{HX!HkvjdT|>TKct^=?_RKBoMj4Jo85B~%roe|%CbZ>zj^2pk4t$D zC>_iEmwaAU!@f&O$IcBSHmRd~KN)}hUXbtoC?+A2rMu6m?xTl}y}_iTD_t|xFOgv% z1nq6wgT}cC;ss__KljWIGSx5_WeVeo06sS`8mJ=}#a zgN|P%E`Id5XL@3+x3oQ*UyO_@ECv@IYFr0fKPrW+v_hwqoUp{GS5+gFEWJO@%mtN; zD$SpvtDgbW%J#$-e0L5jZ%84XIzYqRL@_)py39POayl016en*fQM{)lDM?Dqih;6h z%s}VnjLIj7TKamr;aGUU!VL@UV;q+O*%J4C@8h&@uQPVNIaky7?KFAWxVY4rwoo(} z=KmbBgOX$A@pE?A643plxm#2X=p1YIBzy$R8hjs!7?i zFiCY@G~F9**CmRk&O^aXPZqYsx%CDvg4YqxZkZ%LhCn1gkR8Ri4Y^n(R=?U0=&YrF6{@pidfe^@D)pn1}3u378f$sZp)ls|0_c zQvDJ(QO>aL@`#Ltud6)E)7vELUCUA+J=nGo?3d~GA<3!kKy29n$|Nq4TFRDNfq+uV zQ-QXf|2^fLfRoOcJC}19emG)?M1da89}J^ZH{3yv> z+eZ)hn*K%p(0SbLCiSHh_}Z0&7^k}aiE*}zT-*9pAkR# zrTN|VdzBOPB_`(1Q)ii<$*p_F-39FpdpJl%c8{!DsxB#v2p0(oW zk}(g3om#k54TM`II4tjFX&Y$_&U+=-f)_>+f7cKA{^|-~cq5Gfepx<+-DquZtUNLe zvcw8ak20;&m7b;-_5tQYrX`|OY7sG;qs&JF)JISj`<~(5{NI`2(!P-|Rqo$AVu^n+ zKD_BcF3YZaE0<@M5&tsoK!Wxg7T$u&kHxioi#Tyo*x#7Gzza$M*&&kKE+S$tY5Lz+ z1Z)H}WfT99=^g>8jFZ~vt5D74Wmf%YrgrBl!)4xx9TDnV0`4)IYlhpqwT`C(JNBv@ z7ag}ZFeO8P3Wk#!Sv^1eK23G=k-K};5~|iyie$`iIN*SU)&6tG3!)mxN2&#+QuhN% zspr{{?|KiQ(m(o3wvelVQJ*dZ;?YwB!NZ#2bTfxWPhYxRkm{}99*nABXjD6%34P}R zjm_ygn0rAAawjo*cR8?uG&td!MP^(L;JRraMvs8q7ElkE(8E0V#n@GTs!;3ZNk1p?OAl6xS-_>qob zSy+49gWouRh(Fa;na<4O1i)=$GgLF-)xJPG>xfk*o+K*ccXi#UfZ7hS# zx(^_yFy`};rKoV!nBmsio~SSVp&u$MIv-58YtEl*(^hJV7H7mo`E)E7IMLXB&Etu> z#)VU~yk}AJL2h6zDEnO^bX7HOd;YcUB+*xQ)4g2w?ia{HzCYlkfw4N01C+4La zpHfj2+_Is6Kg{Rim7?`C1N#YRY}<~WIcX`fFyEiTdsjIoiJ}SSwtz*jtSVv+bD=wB z1gnW^_2+@`S(11KjhR!ilmwq+w28sZdhsKqgXT7M^;kI2Mj(EexvCq88}$je;T|c^ z$zG8BGl3TDG2Gb^NmTOdwK$wam?P4j^+r_;d*dxCJF49QGU!zsE) zF=`cXbd|1R0&i_0=p)CLdUER8TDnO!;U5|@30-Ip1dkl-C-3fh%X~K0Q!74a;#2`K z4gwc@eU8^dU%OV_Xmef!%S4IwPXJBYK$|2k`0UyX+{G%=&TcJ~32p5kr>6|u(!|0D zcv6g`f)wQdQpazu#O{F$oqdNl*daoNf+w9DClIdLorG6`oQp;2Xyqf(t0o-iO)>XH zIxdlsqLfuVWrlKPN8VNR24ow*&uF~AO8B8kPC>2&LgX+U7DeC&cJ-8@LNyR4IR_Qu zC5lXop7R-A{e?v-m)zy{CQ9B)t(&4hOw|cv61bKe31pHOEFdP9vQ375xL+OTR^{Jo z|08NBQ9{_uZTE;OuB_-MPu;1qpS&MMY__kzRTOzI-mNm-_{_NH1F6}&8Gx>?fLCr3 z=E#xN-atML7hho^mJRnLa~pq~rz%V{?pCLnrK9w%`RV>Pb`&3gy!V1u3E+!tCQ*4Y zI&(BvGIjmV+0|cKhi4}D1f!wTTbXqyw12MVuzi*;7LY0Iu(XZ2Nc(%Z`$z6#lWztE zc{Rp=I$3riW$={Ol;VP+bc6WhyyYHXKKJ#_g(M*kJM0&*`m=A^q-$5x45jbx5|PlnTuHH{K6gr% z2TVV)icRdO;w2=!00ZD#i+cj|2hst==;Tkb9qXErFnzwCo!VRHd|s=%Kf84OEO=H# zafG;7g#T_C&^i9z5vs+nYz;G{+~>VBo+B1^`k+mNKY__b(z~ENj9z;(*LAwZl&Jq( zC}Nakb*;#1U9vY*p;Z$hD~qwxwPCc(j(dGGyC}GJ8e^C9eE4pt zIAW;5q;ZCbiq?Qr6%an4`$VYerZn}QAmRJhx1?73FRt$F@*fBYp}+sOc1q{oPYyPwoi}mJ;GT!Tc_H-7_JDH ze%)zlYiF=~Zi?vi8)hu1G^ZIB6^1W4*Dr_*o8ss~wxf8tb8xAj|GRv%&d%+s_b#KBe~ zaHShpLQ6^?W62`<4EV_U)HsZwo+X`3MlZpIqiOyH>9oQYc9*0Z&Hz07RF~2HL3G9P z>NBf@hlIos=gX`k&Ef#LoWat?+9ES?+~6@~pT7-&|Gi&QUBWyM?B~4djF@e6)XT`Z zHOUP?Ws^UDKyeb0@{g3Sy zc62HNj%GDhf1LPNY4o3N2ta2d=SQa|&UaOk;mnipVD?;Sj7<**Jnm(?aR*Ixi&vZZYz9T*m4tS3d08RL9pVrnJ{FCay|k(>suheUmYm&w@sYZI)aZy*0*udYIkp z>|X5qTbXh}eJTA`Rbhcd5=Ka4A*iVZgXpUGO2|RQennwffpsTinCF~fHC4>{1>KjY zCnGRnW(itd6hd52w!W-A;kFBe8ab#8cUar;m`dhXg44IJQ|eQsy!DOVwi_}24T&vr7U}8R zq7987UeK%Nks;E30}lisx^9jxaDqTKrvTXx8!cKJ|7HT$0?4tpIAxG!8^5vVYBXy- z(wI;FDY8V|DAC`Z?(u%)DaD@@<N7II^38J>x)4{OOQfybw z;ou?Z1$)oo+;Eva9EdQi#)cqF(pct0*gcO}0zo&R28`VlN=azoWtpzL?E^Qr5<6;*|FSC*Y(DS(*K3Cgr4m9 zayNFF@0p&wLdTJ_F79EU8dG(*9^}+-8%GYnY!4>=$`5DEXIO;`Ck+n)D2O+Wzr#wo zV!8f!b?l8_k~JDxMOjtMBGQQZT(NIQrgXe#;7dL}0{^pXZ1 zbF~H)JIdWym>7~=Q*<*P(A_Lu^d;_y_r1`?0Aw&wF~|cv@#m{G z#l42GV{gN^zTg4XpFA)m~e+0N>jK^A33?Q!8)#( z{dA>jvggF~aa~QhNVKIf(Ku7A`SZ7+G-&nSLCC(PCOQIb04&*W zi^tnCJgYtYB7f_2&L|bvj8YIrV1xU1Tfp4UpiF~=A5d{553s${X%cK!Ysgg#CgT4e2T^f$;OE32+fAU3T_IgYXuS*x`QuT?#MOqWxO=igU3N z%;&18EjIB_f*~{p=BuEZ_MVYn8P^Z&E2RE9YN7q+#P-K`-$RfovlO;z)~RQ>+I^`B zaxpoiSD#X#`7F=8xBP1qgzT?UUsP4Aagr~mFLAGItZ^ z=rJ6BJAtnCV?Xy$%8XMB)y{X!Y@oB1y}7*WG<$dY^UU=~m^N}TQb=#|u(>!e|2?_^ zS7C`v_B~riTHOSL8B^aa|21W9Eo|R6j!Fy*1|Qo{9CPYIdbnzPR3D$WH64uBU#Ls> zocp@>LPb6C6VJK=Ad&k>F^dlu%+m9s9OlIfWNq5fc~Qg)^cXltKkhvSnZ3Z8 zt0F~V9-@?YmcVIWiY6fa4-%{ULxb`4m^dwgdx-+~d?@|?Wm1i_iarO2`6R+OMA*yHpgWhJ0G(>R#n}D1VB>zR-itT9O=M4OP0a6@dLgKcmpx zGAi^cps*n;{tcVii9*W4AJy$`xjb>BkkFQeI69Ikn_tIK=}+!n0w3JdshMD`^lJ~Z z)BaV~DyqPvU^CW=curUJ0b2ZfM6i%P+$xXs?&v65 zt{_%*P|raib%cf!(5wiRGj!B=5~{2KsoeS0IQ?@lYwv*iG|2MUy~f;G-ad<<7;QW# zW*UN465{CHz0v7y5Rx<k=U~^ble{%u%NAZvVny~g^AR0`QDTizZbDiU` z?}MOQNSbcbk7bmY(Ft+d%w8opBkc^T21%}ej8XJW0`sK*IV+a1VDlnJ7w+$Y9_9QK z(KmM4iRyXNcR0gCSz~3YsRXI&4IUvLp4<)#QAoN!CROZ)iu6_MbNa!vP;35q@X2JB z+z~^V!M~3@y*t`A&OM0%fs~*fP>PYswDVhlj#kY3t4ku6`mYADmE-zhv zc@ue5o(ru|-S6dr`tpFpZctIPrp4}&_eg}80GE$J6lsI5O-}~Ia=mG;P19RoDX7YyDf3KO&Bg(wzI zu`j>zp#I&r^3)>UX_pK&G8m3s(hh_BRGS=1Bp5~S0aA@1O#Fcc-PjFS;EZq0n^*)$f;Tv^HgF5Cx%vqPKnYS6k?|J{j)!NQV?Bb zLzbG~oF^3ZTM=Rq&jwY{n=8EsG+UO7WgNUHjxd8Xt3$RDI*V4Z{8{7J(ly##%^$F#j!#&{p1PviF9{wnpT%V^lJn}|A z#ONt8Fz+LSi>KCDwG%7(76*5;liE`+HEP}sFYaA)st&JO2A8(Q!3xMi(h|HIb1Fgn z{czF)a5gVI_0tZm;e|Wf%))hcp?*#ik&;M){rHQpfVe@m*%9Z<$C0A?kI_WAnW;hqf1|57O04FzIWKbNP^DddxudngFgd`1m-@}fuJ=X>oD z69*5XQwT&exuI#jtp_q%d9#X1vwdlmS^|7<=2o{?R+*J*3)Dwh-|*}4?wpdulb@(_ zo`D>}^|R9l+mlUg%_ZC&!trQt{>0KN&y1q*8)ku9iU;3Pd-Wwt-gRF_^JAB;yzkmj zmhfGCkCMtruv<1v5blGYC44gskr+TP)S$`D8!cq}O9nS(lE@*3b>+fHkL|(aZ|q;1 ztw}_H$OYSQep5->Mca~)`rKQYJWXB9GrOS(g8Qslta0hqZ1v)b*jA9F6H@J(1s3V6 zqwCZRJ@A8m#OK`MY_zkeCJJ<;E0;(m2jWcz`nuto?()TiWb>!W*O>Ut>A@w?9f~~w z0A@&3?rX6e3dW3^Zf%(yCdS1Ptbi6;nlASFM_)&f_j>#VDiy{)qACq!H*k-2y0HNG z^>E49=$}Mlw{4KA5;KaM+Ck$UdU-+MI4+D9a^JD_cg3TL`UO)LNSjTd;rh=}JbhLQ zuTw(OYTvP~pqj?D&74>HEkSUos5{s`y^jj(0&i|M{6wn^3s;S#h9E412G1Dt!ar?# zScRH`Q^9-OTihO3u{bCB`IxX^7t-1r%fa7!^=*`CL6=>!n!6bir<4qA1!@PXI(i+U z>ym(G{_iOP-@(Q2Pi*+LEmop}pZBphaex2Y4LIxsT^_ONRld)8&fgv9rE~ELV1!lp z9`Tv-+3fp4JMmjlNUF~_zJD6-rdftr9SJvUG_z#GaGd^3&6;M z+0EJ2e54oo9P{_IcWz!EinQHr>g7&l2Fgtl^=T?g#@^*&%TYs_ zqiJq{$F{%9OiVkj?3cdiIF1tbZ#o4gYj3Q545Zdmi?o|FSj;0&)K}(TY^+*4&_Sy0 zoC#RXiOr~K!3>wp24wb{<~O)6Lce!GTP3!)}rD!HCqmQVQNa zernAp)JJWr+*b}XGn_4|*W-Qx(d(64Mv8Lm1fB6+xXQyDF6-dRSO})sF}7&AyyTo8 zLGr7qJZDo=!_{4E^^$&)y^2c(#|=%q&t23yu&d>jNu-fFO>{g&9M!mj8L0$SS6`Wa2m6TR2|a0Y zf!cUbnrzz|-+@+iTw6eZ0B0=u+IX|ge#FuFVkp^HK3g@`ye$rj!;lPf--D1?y`$8L zRWb!Ye;0}fC9(R62lfH9YfU$|fmoWkL(qFE!GT!r!___KOuZn1AkHNjd!e%|$#<>< zNG2FwQ2YriWLs0XGrmSZdR9k9&a{J1q<$_0%ZBIt)_C}s+fH3Uw+ipk-43g+#4adC z?3;NLa}9u?OZn}<1L@d>wk&g+apsLHTQTuKDr&{MxVXrueof6A=&BCa$LQ9!XXHWV zCru*>B9?IRF+Y-jGjRj`Upi7Y(shKpb=fPbOJ(RneT4e;IMkbSfLC8@g$<`Ll_FJU zc$`nTkgok2fWItl72K0lfHt^>f)A)UjwWoDW2>!nGuc@jq0VUQqw;%0ZD=v+64aJP zt1)kEAY8KD)GetEwvPph#|{F=^5)BO`UaCU#%?kG;&Z2H`BLS?C~FBkZj^xU&NYXVIlwUX8wV?>Nt2|jfcMyoJ z{5zU>m${N?IC23@j&Hwg=@{x0FwG`{uP%#KQL4<=3aCx-S+_^I)SXH!x#BPCTC) z#%wCk1c1)3xQ$YB`LZydFzdlTm_Es@(e87`?g-VPzBJDlY&R}Lw=^>d%$bxxX_9Y+ z3XmrL8b{K{6{V&G)F-bEC}W=Imio-Ku2)T&fnl+8e1on~0d0tn>@>Fr3b zG+;@nXAOhS!e#5};u&%(c+Nz%KL~^yHV*h8!uoR~tQ)Na6x+`DsafV9YF{bUAuIvP z1E&lB3bQ`Dr4X1p;>4b#svEnKQ_9&P`nEfhgRg;<8orUc8{To~P}SNvA^jb_Ra)y} ze+7BUAb8$NDTc2&(&AM-@~Bq@g~v!b=F{H-U;J5=4z6XTzBzr^J9Mq9YR2rD#W>3RHZ=_bdGmckQm2H(1j8jU1$^}GGF z@J4QvE|26ti|>Y8k)r25IH4E^n>Umk;hkl!xun*t*$poSs*$5}|DYyMpI+z=5UfZl z*0S;Hu_m$oYVoxi<=fQN)9Z=f3@zp`1ZjIL!aO|YryY?rjP#eg%E}VB`Aej=IJpbb z7oSFogOykm8+_Sd)&;1Ps~_C=d2Y`1`f}C&p5Yg%WPi0i7wR%6eP@IPkZm|=P2PJljNeYi)QR{G)fg-OXVGj0*?m^ zuxZb@pi$&v1m)w%IOI*2D3eaol+)fWoqk1_8g2xF$`JU_h`pEFil}WjY3;!@3pCGq z6Q|eB<*8l!xE@pTO=^=0ysnzJOZt9jn(F$aqVGfE!OrOZlJfY5pHR%V2Taey61m2I z!bhu3t{|n{=R~xp5k^mQ1{wQe+RgAOs`3|5O1%sd!kJ$${g?;p03b&g+xGXQ&mt1V zY;%IoJiLFey{9}Q`ix{7T)9NpQH=p$GZ?viKgbf{T~7xT4{JCV?=13`zOaWS#Dp8l$B5+(3&!n3&yn|@2%E`wl0qK*DZB{I7aKxA=xtr~H|;MUv$rg# za5{3vIo*DpoXXRC4#q9pK~Vf{E#_Gp$!-bY&wRgI6%d{L89N)2nhi+r3D0=?x`q5O0D(jH7q(Pn6D_0sz%1Nh$1xtqLAnbcjS)aS%Qs$-EkDIc*}^Bch@HWa?Qobp;F z30(WGjm-}9|Z}1NQ8Zl*r7TEi^sQzZ(Yv@8unAfq**jc@`@>`KW?2~Sq(gaX5 zd@88w0UHSEh(!Mj;I;qJ9?Ls=*pQN!d5Y$o(f=ND>LHl8hCmxO5KSOh>vC5F8rYtM zi5=JGrc%4>h2QyL;Xa&i9N9>ibksww{W|rUHKt^(qnaDMr8jqe+vx}%dIn#3nmjQbQt1b1I5wy%i6 z+crlt+#8v$1>)B5!LlfwoQ7%0i&Z-D=h94cXYVGnIJa2(q-sAWI`ivE!5NlE7)@bK zgL{hh#(Lics2w#TXyR>OP^bSGl3#UAURHA3DcG}ZsIgl2s1A4lIRWR`3VHo2f-i9{x?n-WIi(T7a{$fbCUpmvA7lZ9ZD>r2xJ_t~}Nc#kXgkhfuPpSy2 zI?}!ROY&)kiFdSumuDAe!lKynvtzT;EwC}%ixDfiaaMTVl$G&>T!ULHSuP(jxGxO4 zrAYRiDC(+|9ujvj)!T5a)v(Qd4>`u^R_xpM(!Fy@EG1jTmNUNr6?KE)I60(jWN#fgoT;w9 zI33tomj2&0khi<)48f6 zbH_)!8O-;|kr4j`Xax6@bpsA8kZlc)Q)NsuUp=|l4Pq>nJERv$BKh;srx=ABVzhc- ztaUcHqi#rg$&SWzjXj3yl7hx77X|r5302TsU2=eD=bUy;iI44lmIIn z0PX0I;v(a0E4hW`WvlyR4T*!NJF}?|EcY+~AKjR>ad9gZW5vU)4U};PS{wJnM!N<> z$q$fm{K#VnQq(B0AuD&K3$iR-OZ0C;*i~FDDbl#U9Dx~+p9_45vcqCosgz!Zm;0@% zm0CxO@O-n~7W4MC7cTm4X=H+sHZ{s9ieIYGPCHy1T`nNB1zC#UyFfQXdqwygex1?u z7pbMJN0#)$@*?=^cQ#Nsc7pui5hi`BSTR*TRL|{7|0vMGLR%Q;#~MoKCiQ>+kWvZy zOZF4yyMN#P=B_0B!B+U42UZ_bzWL#g-?x^YP<}yrBsHAYkuQ6e)F-3FTZ-qHZ_br- z04yPLK_qk?7}!;AtiV3f- z>z`PHfirFGv)=J)Jadwbf^ z+-S&ZF)m4>InNj@=itrtJFP8AJ`zc5(yLvTuvTe*{VU5sVE1EefU9I+f8oFEThfKo zcU(Q#COO-b950-{;irHG&hKM_gvZg*IAf_f;c6)cQ~u5^`D6&wNW9z(Czdk&WUSPX zQ=SXae|iYUuMyn4a5&(o6KV;go=vJlbKPod%++b16&be}r^{Oe)E6 zn85U7aIj7l5a-jZI=lg9i0|sfto6w8R?zVLoW6^~O&sIvTZ4I%s+UfS0^=KT5h2Ht;lMml@*RBE;7F@nyD|>FW4eKS1R+$A9`>9)TR2r3fx!qb6%LO=6(i2K6^-(tI5Qsa+~qUAA5E7gu29kd=L*qfMJ2igkWQH2GUqtaUcXwu#S z6`+dJ^okc-1U!ot;y~c;j7(d>k}B%$${8UkZe8=xVPOHg8naT%Ot(KXRyt-rzo;eE zroR|c9)!d}c^mOfi{#{@|#@im_I_Z8LUoE>m| z$MJqhEyz1nQ>hMo$;U*J_f0H#iDO%WsC*c;=#c6-v~ z=o;4Z;)u2W-Bd72$`ROwiWP}j2=gjQVI5UH+`gOhCmLaz6}2PmVt@ui7lJ2j;?2IM zf(U1Ln5Yd;e-C2WJY3eK#k6G(M2GP|HiF?cBlJS+DqPrl)?-W2_c_MN@2PTn)!d;z zoRSA27F9AJ%DTKjQ@jFX#@mfPN&|c(M%99*958)vgd%ENFED5U%~`=E`uj(OWo`)1 z8_s>QlB^1RL?~>FaTx+>&br3(j5TR)wAYmu44&^>R^IFaBa|x{KUVLuBb#fZ49%C6o@zMCFIjeVnsk960%CIk26UVm;fW_I7Z$VDLt^gU=mr79oy=J?wrj zMankG^hi=F)mtp55v2o3ZI-#tkI^y0vUd&2Zcm!74Sx+WdCwshyVOzVrI91`w?glT z(-K@e>uPw@8xidCI~k=R$_I(k$G+p%>6S0vUuVkqYH%G6E1zHr#B*?RdSg*-?vdFpUXrJJ3lEh;tENPvH;)MPpUes(x(9uNaQ>QG zmLSYJ{goXCs{A}ey4h8B0fF(AHel6`yh+@rOryG{N+xONlx>5WbgBpNQR#V$>OqSg zF4?h=xTBMO7$r9c(&XC*hRUlVacioitY&02M8Jzv$#PZwQ*-xUQ5yd46{|| z*|?tf6s8ptyId+F@frT?3;;K9n*i+T(bCu;P@e}S!$0l&(0Ip!-;8$F{) z8TF4%IgL;Pv-NSwU^_A_ZFWNdxdUl-K27I~FUYgl0HW+H^}QN2UHD&N=jh^lUXzVp z)4IGG&yHr31bt?=iZS zZAQ7~;z<66>vX;rMN}7x3CmdyvlQ`MG(mcr4-GVMuj3;9!UCBatfZu4om_fyqPzo!EYacM16sJ8~J(J4p&so9Ozz{C>#k&y&vKE%E`Y! zq1SiPR105v6Ob__8=2+~`qi|@_bz?lfr7>?LeqCQt^A+PZgpynacdIP`6XcpuoS+C zrai%rkLSaOh~POeRN*ZgKijMSJl?2jtA7e<4yyjAs#$Zza;h-Qm%s`bRYK4R&kq{W zeP2LZq<=0>O07KHd3BoX4GppJ?lzYVS7NV?;zIR1Bj;s^NcH{}s|eAKd5Wr{L-i^{ zAnMK=O;HMRJ>Gk}PXp&slBQC~NUPxHtI zdbb}lB;uIg>{>vo(``HH#vy@!cC2XCXJVw}I}yW0JxImW0F9INL)>Z>DUo*QS>876 zZ34sxS^8)A06H|@Pz+*hm;zz$O#9#JrS^csjy@DsB6qgJGq=#lfSYaN-Nf~&iAkq< z-&n#fCdTw)CH{vp)W3Z`000h{WgDS6Gj0Bt1v71%=C5B2`?`6poGOb2uXg$8%6hYQ znC2`@<6e;=izdnDZw@oeR>OIeI{Vhot$%p;{NJDw1G8G%Ar5>Bpt08@64s9mFg~}X zd9-;Y%E<@F6p?h_!8_}9iqIwm;?1^rOoUUv;AXTszX;A$(%*V@EFGV*fLA{bH@zpzXgKlD`ox zW&R?!U;AiJlxM}veBBmEq5fOg&$F66&=qKYC1sDge_}7f`^O&g4T!)3^ES6yvb_E0 z;b_I`nM+_%=KP^_!RV%Q?piG-eRO>O9Y^~&KYVP{N=fKgMBA>(Zrs-L2N^371yR~Y z?RZ%6kighqh$$9PZ1XW|lyyN$s_OM+U2jv!6z(w4bJE z>L35fsiBy<@dCVEM%s3vwuZ2~FgrFweWz0cR3{R2&SFC)m{`-pjR)_s28SIpY40>9 z4u0+58F!eGrlN1qo@kD;5l|tvL=W}VW~}7K1G&r^aw=>B5|mu~WTnn=e4$3#i`R=5 zzegE8fHKxdR*Q^n!`l&@T7_0~VY9#!6$>D&Q{lF7k7Hwbpn<&>!M=^HgEn}aQhL6p z5l9i~QFK`pefa(+mF0yQ=}w^*mE293@!Olo zU!IK_dudu>o3T|%(@nZ7lD>o<(MM>(Y0zz;njCh1l zx}R4YFk_m9Ck%+8VhaVxi>>}uRCTXB1wt(=;8NCEpq-`0ZeJIZY+3q*p9dPzP|A&J zO5OM^u(>K?>enjeZ3J?#>6nqL?8Hyrg12>*`t*v@9Ge$^mgd18R~5{2_biJ z*)jC53zM3cDsy!@IR{m~ERC^s4DI16;j}36zBr~EJ7#pywrZ4q51()^_l9L|kDajG zjR+0r>VKtu*856n(DBBT%~f?xHBAu5I{GQ_g0{jKPFpsXGy=UNz`Uj^Y}LSJ4|$Wj z)`3DkUH5@K9nBXocHzO6a@(KRXO)cymB>2|>$>;x1T{JqD!Co~L23;`>IahGj|ZZi z_!4D|C317DF{O6jEN}@)?8olFR zjKm07-;S&*r2OgOZl^uuq@w~__LexJAvTA-Lhg-RlLUao9o^@P1mW0EuE18!a5xAf z$9UccMG~7nok7M9<^yI7+#z^v<3w(Jtn?4NU?8x*4kUhnk=L$rW5iD#qE<7RmCx`Xf>(*AYR+&|6Ch=nJEu{AzYGwag z(f7|pWj&Mg4yeD1)hDm#mz%x78qv?q-d2@1H^4?5Qgvgjgn!vnq_HPFJEODw_$S3* znQA!e_LRx-<@sifpQ$lxJO{|?;Md}qDYbdg+oKz@sBkRjK7nZRAk2YaV(LvkBG$CDS0H<eB;3}sVn#z> z`F+C(Ke32V$B*=dz4ff__p21Rcye#RG1#U?VP_w4Cu#G|FI|LubjCpMu|rZ+z{>tyW{T~9F2lDbfh z%Vp7|huOA$)g%q-Q}lqU05Vr*QoJ1*wuvJyq^U2(Tq6lZOI@px{Pf0@9?WUIkftEG zM`IU%Md+A->R z%Ea3^fchq*201O62vu_X} z;7eLc>Z)**v}vG3K?(eRyANN)$vJsH_cBpE2IRIa^12#6u z=^QX?DC(!wv|?}T+q?LmbA9cP6_P@!W}%k7_??t6(~;R`lwiafD+v6w{kLCM^BtR-UZx+Q%s&Cb zi~?`C9zqs$uoQj7*e2vOJ~Z-d-3iGtsqPoZ6i6u4sDJAw*)NTr@{jA&-{%6_x{1(H zRauT}VUlOtqd?+G6amUzNEmB2HjK-ZRQQmk?n39sCsU>NEzxxx*dVGz`2b1rC~vX*8?}(4s&}C+jgW!uqm9TN)PzUA z2RtyHf<`rWXY{4iTsak5+{kp=9}aEjcHWlz)p~@xFD6EO%uQ@@vGf^n@PMWj+Mg<# z;MK1@x@z2-Uuok`m-fL%WlKNo-pmHxF>8qfUixQiKp7Y1H+x>{fm1bY!ZKWDhQ!5@ zgmrNl%RL;oV(ZfEff%SX4H^!0>;M(nOrC0sv+qYEl|ZTROR<3p5U79OI)wW{>rCLg9F)?N3#Qbaga{jYfBMo zRwQlZ7pQ)ab*J>7J1fr%=hb;pLY?J1&@8}wx;Q18-ZP@=%yMKq?#bTb?h_Z8B*{mU zV%SEJq?=(xs9iBgi{~Cpvqb0Fxo0uKF5H|L{l&c#?<1<~@c~9|4C)jv;hqBli<+$i zFAmmcm%4Q=zILoWp#jn(5(i;+ouLIZ=T}25wd>D=r^pFC_|x|A2Hd+QVbAFJzHrHA zP=2i4ORL~~JXDWlHjW|ok2<-eX>nP=itB(C5B9<~WWQPo zjQEdSks;D6nX_m#LRFDs)@n`Wb%p7FZ^V_|;pt}&pK+ewp-xOYFP!D~Na zVYigrQ;o);rUF$txsaCH1pBAG?utzzVA?~Ck`{l^_VUAfE9-TdEKJi!U*L-^F*a$3 z;#jh*l-y-mwKpHHnOhP86h3i&Uh%eaA~Gh)`y#oN@UYOb*h^8!n+3R4C&sPOIoIM$ zJc&(OgZ-U6{%&ztvk1gvMkUmhU!pgez~+O+%=q)qP(IwQgH`J7_TH@{tP8M&q-BeX z3y5%{a)fM9cfZ7F$F+Z1A$O#&03|lbO$BPsSr)DoURAPiCjP%xUaNQ68tcJB#0{R`%mFaR;iAs?BktaX3ELV!R{}jR@#K?~URriB zoqy5ub310dX|snHtN82i>0qCPQqtU^4CsOrIzIZGo&6+dAD!C77 z<4Yf7j?N5z=?Eida}!;@*==F>^1@8<+1Cfp&}J{TONHZ4b6bjfCvjutKPwDok+0x~ z2{K*$?dh-w3IAOnrnfUAbKaxvKcP*8_Of8QPm3w-!^O$z)<>?tc@*cWat;;Q<4D~M ztUPD$TvqE|-{3iA1mQeU!F*Ms?cDXjAYmBIJ2&Q=UQ7F*#$dJK7J?Q@&W@)Mp_8SXxYsM~OO2c{3>nar%|w)fYi z{nUXe5zi%K^6g8Osj$s!vK9|)vwM`f(lz5)U!~F@MHCt34lRuyyLYS@3OSctGX`nP z*y(hQ0P5W!NC*2!^Mb&I=uq@sralg(=ho{I!%sFF7%<-X5$zvqOXF^_Udaw5Rg3sv zt^Y~zd%L&nj@vQY)w3V&zG^&DNySfdx8!sZghyI7s_&4U$9~ajdJj6f*Qeh8K=JQi zxp?T{?3eRDbHDs-_g}ksyI-H1+s}SmW!7Zz#_Jme0%L2?{0H}^=AVs%7_~6rQ{kg) z{Z=!*-R9Ga1S^5x_CCghSC9PoYp=ym_kh#NzSk1HyNRWXs$!=6|6<&72-4e^P>o6`;mbboikbYB&vHQ%N(zNY62qQ>zJGL2~ zCfBE6Rmc91$ZBCOW!@pDTP71fqSMS@Fpd4Q<){pmi3}%auBGmB7ay+RS6wG)dS4~` zKFrxW6?JXq=Dz4m06=*CrJ(*Pf85KZK#KtXk`^OwQsTjk6}hkI4_Y#Ne(j;Nh=f5; zZgn&fI4}6?hc=8^tekORT|Km$)yTOWz+g$S*NzZ9RA`#+ZVlj;I^BJUh$HeISC(MJ zLtC);&$q!uEQTcrf3Mo!X?L_oSp#Ny3?9#)He7SzqDy2G-AU?ypY5rRYL0+)EonBt zY}JF!nMq9os@}{* zRI8)01NcDGM6N-9%qh1)I8HKdiDG8F#)(hF-I@_OrSRHH&%!2kZ12ir8?gSzH!Y*# z-A>{$3ikG;w;kAP3@zdA1N%Mvg&YNvKIa6MN1*zy-Yz5p(XS$^lXutdzP=A@?G zIX4ciEE9N>T`Q`N2U9e(7jE+AgE~)ymI+p)y^$vU4FtmT{@gwgs4Ru~93~2m?t>c( zA&4eNPP9D3ry5;CVcHD(v3;-;>8dN@YRYdm^2A=uY3iaxNH4jMyA~3h0W>!%iecR5 z0_37^{K}xD`mVN^ML@);$Mg zKF|_d=pP2a1Gkogcf*TTTbo$n<(d3kbp7oYcwU{FJJ$MnrhPN@RIsrsHKrC- z*;|A$qdl4B{s7VTGJV?q9w*G)8_aVY>-Z5Ah+zp={)zzmGq?LY7y6|hfRx1t6g0Z9 zjKT1gsU0%hi=4nwnbX7t&a18&LmGUxnJEc@sa5U&4^3|#mvp-R|DR50aypevV@2gQ zO^Z`5WR1Jx%yG&(mY$hPOtxIgDO5zo1rcg2nIyGxl*)x^teir@WfWY1)X)@{(g1f7 z1XEmCL;+F1@A>>5zyJ6P9*_6^=Dx4{x?Zp6s~MrELg}*GD(*M2Uy>~HZnT&b(|nt% zF2(1Aq$4YKy&;u)2Kkv^113rG8PD4YmMeGA$*yN=bdV6<42)e8G1ML#JSP|)ibx4* zZKYAtp^ohj%+|+48i>@-F7T9?#o;evpvPwnQ>tn7mUsl)Boo`l zjrz${SL4HZ2g%5Oce;7t{d6;K2wd0Lc6oY~cTB9WzXs1s7W5T;Sd<+amIW*MU-pHK z_hDn*-3;c@Rogs3NER0VNaiLTtE+kgL^Jd#AblOjC|V9_2FJ^>ckn5x0bs)mGTC9l zvGu;0%2X#y^g;ih5Ztea;aEGM9@Q;OC)S-#@e%reGk0#uE9I3WFs>%u z#Ku}iJQUAcTa={mI$5%c9S3 za-+9E@4l74Ikge(2REB(6Wfxw16HD~bl-c>$Io7Kj{{6S9_SC2)jMzWMawwc>_?6c= z?pAw9WjY-^)0Imj`GaLVP9n$}e3o5faOoFx6!I{)qWGVAX1M0$((_G%n(VD)NyMkR zahozT@P;}a**8rwe{4HqMA89cyK32LUw;9p^ntYFW!~{;(gG8bg^ka||3iItQT<$+ zv8)%cH9&o>v&`2VM%$Ir`>Hbn^J3LQ-~=t^H;N&|yf| zm)U%HkfD%BJ@}#>?a^uZW7~or!Ox8M1xk&K6kIb?bQ>@Z1;nEnuKww}`00MS)hPbp za>g87h+Ji`dA>c1Wk{8*D2BTyH7V)Z$3$Z(ApMC#+A8{#spdX!L|$`>WgG36LJ*pa zOvCZEK0-NhhipDsmn~YFz0ACImXi1De8I}}rVrseaF<{zhZ#Hlju&gYr!&-#ohJ%8 z;cV&D!o6Sk9CJ;(U{-Sq$MdWr&EaGDL;k~y>@%xDZ)2A~08kxPr=tR~0PF8yKd|LP zNV>*JK-Kn-F?64pFZ1zvZ`?M0tf#>CAN56yq=S9I?+PXk`UFi@W^;qV^pks+Oh2NO z#Ic~#R9tX*Mjp$pnPV1oV4SyXKbo&RE*PK^ltfDZKDyQVA`4PYDb;l> zD0cQ;px4Z;q3Y9;aDPFhRj0?S>E2(RlW%^RC$tW#?u12t1f$QFF23BedXKeV{}AG| zF`Gvx+obhO4h#pSX*{i`D)Z}n7p&7&4(e|#F&x7&+;>AZH9^mWGRhaxF{p8HKt0ea;#%XvZ@uBs}aeY;`p{qi5*52MF zYjN=Nm1sx1%jBMU_)65Ob>O2!2qhM`8#1;~px+8>iOg{XuOqX}-3Km{h}%u4*F8uj zbJdE=+ku!;Csv~kRoYT^dGThQ3#tYHU9(IBgrwmyclwQAX*-r9YwKo${PQ1p1lNp^ zM>}QD<<_bAqRnNeA8Et8LVM|#uXHDm4t@S@?fL)xv+Ebw|A-8aeES$6ys7FeZ?|n( z?CtzT?Qht$W%u(BnTW}mjI^cu%Quhv_7Ltr6#EVNjuGw;*645Q)hWM9Ze5_j{T|u& z;C~mjSAy@_z4E*7*Q3Z1X7xUKgWjIfxb*vP4#gJFD2&OkswmejiiYL7FBT7H<)JC~ zstn`K02ab(ZSF`^rvuM!={^KDrYX!Pr9G%QGHkrWD4AlwEPXPbYP3HuysjZTf1nqs zzwlUTzfB&FGQduuzBa1@+d+F!|NLbB{iC<%?eWR0jX=f4bkz;d5&yd%u>L@Q?R5<{%e)4ok{T@)tO1O<6-#@cX$jD%(Um1md`l!OMDup`W4nLe zR3w&1+;7Y|3^`$a*-5iqvKg%^tR^OO>?9-1@*$hv)Z7(qbOkn#4Lv;b%FFUZpE4pr zFj#+RhSA@$32r%ztA}}9;}9oR=o4@o&70Cv1XAbN-dSgSJ>cPMwI-?i(K6Rev-jY2 zFg^JC>pcDAK^kW7PYC0;SEvQH9ez6ob;&xH6+@i{%lmR7tTf$JxRfRnQ?=pnOp0TC zZ5VDBZ7uJ32*GtOW3|wUrhRK+0dIVBG@qF{6#d9SxHBCzfS*one}4O9OO z^*AS~DXAP59;~eA2pU}M9wWJ;9=7k$pa+YLJFL0md>RUf3+(IeG(v?)tYYcnbjSSw zp1#w2JvnXQPKfNAJXK^c4Q0oKz?X&fUXLY$>>3^^c7oOtuhMjuhGkk~Yw8-~&NE8u`}#v{rk*nHD?fHEy%6J?@JPas zMugfV?hY=4!7roR>o|{f zN*xkGHpKTg6r*^_#rz&@sddE=5K5>yqkri6w&H+9wyVzcY4zL~hKIvVlr)9LYC5@T zB&4-bYAyoz*LPlm;>PtCutgYMZk=6hUV`GUftLERmwKhJEZ5JzwxvrJ(;0>0Ma<+B zaLr9+NFU6)rr@-{m8L%?39)XfSys%O1efMQbf~4tb%_5;A0%|HPp*om>obTy#J2*rQezzkJZe(yK# z`-<*4Fe6<$h+ZT4$$Hm&Zh1?`RiobH%wie??>m|m`RicDsl`*VxfQ+%-St0KiWTbr z$`BJ~c0N&vq2~&I&Dt(WT06SJshh;|PE0r;8xG|q(r8}(DFaVX(mJrmR_hRNp3)~L zfH_eTd~X4+OAwxdZPdc$?|h;(f?K_`C7++jmqm29)YmIX^wqIZ4~ogL)^amRyZ%)< zKW{em_i=xHtWlNgsdus&#=B9DN<6hNmM8CGH_gFVdpO7q;tBJWuxDeO&af0S` zU9o(nIT`(vvY23tNcj}ZOz!)~>o~L4G2S=2p|E#SRo*DA_knzs=l2Qj?_;H|0!W+l z|9iFpW}8L1CsDP8h#h8R{*7Lk<>~&DLn;=83ocA0rLB?CUfzt4_kLLo+R=B+FyIkm zDRU;f%8sQho`QqUakL*O)v=;J7y6VK!BzX9NijAicUX)s5o)wa7{~3d+nAoOyq$F1 zcHytoN`3qB&Y8J8lRckRChc1G9&XG@sKV8$N(tR?mh7MpCCY_AXO^9yorK4H_jdMo z7@BKEWu0{DGrt|Je>R;JLNfiKydgT--jsCcP|KQg=j@mE^hYxJC03brpWVwHeQKXA zo=`;~B*ZJWg!pke99HgYm>jIrv!H||1amjZi?hdb+{!Ryvt|8nLk!z*(QX;m6fybX z8CmuKy0N@+IB_SvO68C}cBOQO)@w%h8ohI47|3m5$I!?La?~J}6zMj`*pWVHW#lXDZzvUVLas?R&S74w|%pW+A0Y{CYhG)kD`Vm zTL(mZaq@9)h6~Baf><+Uaiy{PmxL7LoavwK!6`ec&|GlMZu>xAkqy5jB^G7Wy=)-7 zb+D{8I<9-xc2XQh6_+!UPS{Ab!*-opV}_jKipNL|9hCPnM~tq&tvcT4-SdfGcmf~(B%I**~L*xL^RAU_N%BJu*_vl}U| zz*``D0iX?J_cO{-sIm2Z*RZhAX86^m;2X{{UYFZH?qrRrKR%NOLdZHj4#JJXDwQKSVB9ob zPh&qA$A2OW`2duSe`A=eaff+P+PrZ&LPB>zC2jV%$;3Pa`H@tz+qWoP;3R4SMjT$o3C^fe3(jf}M!@A^c6(j#Rg1ohhZL1R z@#wfva^otaNOnIr)+2vbm2{YBQ!G`k-LTAe%0)q*D1lpR)gbMvR1?_HF$lg%4@0?{prIYIG? zCOVbT?*J@@MF~froOB$5PD)>H{JGb|MOU3%)_mGLO5-#+Gz2FNsjG7hk}|CRF3csl zsu$c$Fg8s0g5l0{N^{$9;JZGTT{O|c36q#(bc2NA&bA2RNg0>tBE#jc`X;EdD9CBN zi^qCo5!}^qY0$AO*UBB5n9*uU?v!C|RGwN#%i*^Wc#R58cbse&aJ`5>=dm(wWDX8a z7Jr1&lx z;#`e3|0Gf4(IJ{VE@s!0pt;qK$b4pqhkk&@9&$8}GNwBIbZ^SN)S^9<${X{6(9}~SEW7oW*d@WJ z3D?#8JM6-;2t6)qj!{v+Fj*qwHkL& zO2gdno1A>-GD5A&bHEwq<`jtE6(s>+dUT}x+qqJupo{)2>HHW5X-#O{D+;8cH3QBK zT$^kslIIEZi45puPU`%O{D^g|5$w=age{qxm3PILg39J`VJFO51ud@eQ#fU?d7-c( zgXgJ+N10@A2Hol>(v&mWvohvsU82xMygay{7EuPeTrww!wkq#;(E;)yRIp8RhzCmz zh?xAo{(Ci89cqkYaKo~oYExd^>XkCG5#I}Uz}f zEUZah$-N2Q+rBQUJ0#W)Wc9Ut6v&A=?}x!0KlV@b1nR9I{}MFr^`(1#g|BnIcYyjG z4M}plObv=*LI7i*m~hlCSQ21sF3rOIIR@TTQKO3gFKhJIUJgH|5% zS0DDd>6Po;NU!{WYPjlveGOnz*wBt*%HlIaX;6CqS3zg@e0zD5&7lWTTMz4Yp#Na+ zOc*})FG{cS>4%?n0>Gl_1mVeCT+mR#oo(``@3XoBej%xp_Nkuff*`_8+064d0Ttk# zgq9m$N1P>qI&V}iCw?{a>UyTl9`zT$g*4tjo*el=`)N{jV5mK;Osx34{aP-~c~zNJ z_kQz4J9|Xee)SzKze({;c3PsNe-rUj!a(}a>T)EAoc?~F?9WXL+Fu>m$3R*vHoMpta*ut@K`fJ;m^FK8~>ZZag?+*7YF#tbq*s-dZ45C;6kh{dpO;9GPL&Yd2zmJ zZ=j)CJp%=*jDx8cb<1DHdfiuLIap@`Ij_7S8AUqQtN5Rt5lEBov}`&)Lr-h}!(a9P zvjA#aT|DLn1Dv<>ee$DLhO}V1^a9;Lxr>p%o4;9~-3oTMthJdOfCTD1Wi`PP)WJIW zxPiJAm@1aew|P<_xJSZRvunT1bO$;Dw% zU`BLxbpMddc_VsVe0-jwp7SWela#X@qaZN*yhFAzPw=k&+wQ~W!KRJj)VL6vuxHjjGlCrT@>5$#+agHjhB5Vog^dfzT3LK0G;Zt92 zeldbbN|t0FTu<9WkB{2JPKz*%du`{gUG)`ZgOnrj=f*tPiD!zeUCN0~_LBq7<;t=_>63T2#`HFt^u*#e4M)2*N^}n&F_COea9v;PRKQNJF zXEoiJbSgJpHoi04(q&ZqRYjT*@|gT+dGp!Mypv-{Y)NGM8*t~W>>B0`-TvIcb6OzB zV+r+xeW&S>M-F&}$*6Cd4HyzeAX}mz%?6=@2`ycU6KG=kn@ihk&4cw5#BTo$zM$PVhEJ09{U+tC61k;PxXoj zsxW#r3^^4l$cNY&A9vDY`IloHto3SboK2E3_TIw2re3^J_I84B*qjGa6jp^Bo@dD3 z7Tw-CYFc*Kp6NLhx$C4&y6X2)Uop=wtS?Q%8guU$Nwus?bH@py94nHSj98L#$yg~J zx$^3888O_!*l6)lcl1b)-tkEB6GA*BkBnFv<#RkHa;>gCx1nCPoKwX2#lJyX3atXY z3O$C`2G%&Z1Vsi8_aHa%0CfY{os0O7JPDAIur>bYLwd~G(&cQ3kMRbO?Ss#Fy&{v9 zQ+7zbeKRvho@mdubzb&$hxU1x|K??ndR$yR4U_&y^;Pu-y~?A{?|${Ol`{v6b-Vl0 zJP&>^x%|ZjWNcqvU()N3v)_F~B$Xb<^_A-&z-vUcpz>93^RgiR_+QV1Xk1Qg+SJX# zCIGkeu#dJB_ld0YAnQ8lwiPJvfW)L1?H27ywWABBrpHJ4H8#!oiSeXTKf#VrakE(3 zXVVahy7W|Qd+0d~^hQyTgpZM~DWP9jSym8@qCm4^FM93EZS0n2w9UGHegz0)O(jjI zP9(0J??(F9%XdmjDoI|mFCVG3?|ou2raqHyx=zW>Y+rX+Pwf4{*Q-g%Yw%6ksIdOoe8hc*rF?BGe92%V^^hlRa*i_10^L=KX)Jt<7 zk4^j*&?I(LT=cck3{>@+Of{_dX|+#xM0(F)fvDQ#kf-l*ao;$NN5p#VDSt$TpX12x z55uw&%trvN@H+du#J*6Er$M$*cPmh#1d- zQXNT9B#l#t&68|w-DU+|FxC4q(0R%^WOL*Z(fc7!Rk2?qg8uU3m-WHm`%`n1@2e+n zN?8Buiq#;C_2-$?i}wmOh11&B=l#=LAt=|kvpJ4vOi~I|Z09XbQ)N*eXO;V@32)od zzqxGf2XuFF&0)v4_#)hsKw)F3Y_sqf$kQ8iq4Bj$^?j_Rbo1liV4&|oKN@p7rNrmy z>D?9kKWca6v&{s}mn_s2%QDQ}v+-NsN22Uvm*5t)?3G*Q*xVL-PcQK1(pT?Wj5(GSP<=b(F zpDo&}5S(W_w`H6Zw#$*^-WY4vKc{r@RLWs_I8Rn{$1!C6bp3Bw=&)pEtM$6fMNGg0 zY;wp$XRfcf!31+}eBD@ttb+|1x;MH_-!bF#gavZ=vW!!c;u4DY7lqy9P$h)MP)SSp zTjlVXblI-eh4DG~W~A3t@i}|4W}u+@^drNYAyOO<7=roo^s$5vwkJoJynEx)$GfL^NK12FwdHY>*1W3+ zn`r4`L3>m%tqj|U?cqE$A}+f`XN9!$V%53%@seI$b1jF)Fo4Mt4TYUYojZ9A-wUR) zy=f{f)~uKw#0&jnZJH-+-1Cbeqn693ZH!LLuxG@%x&?bx;@JM~gLKa}c7HewyYjyb zCVmxySY8tL@4+^9brRPS(6J;%DH)?_q5L1$b~Ooaxw$x_V)sFt35C)DWn{)hz4MP~ z$Cf65N1MVTv<{1ZDq)0W6&*qR9!ZMzI_lcNc`arAKfcGZpGB8l?BMu%f) ziHa8I)mF6wn{nRE3_uKvw7&(copreuH3)&Z3hz{ru8tBV8yzDU*o5&RoR)^$?ejPv zPeK-WE_J?ja7kQ~<#d*vG`ye+pFr|%V7cbu<~^9vq0#&$>#TSq+(8KHw+bE;WIIp` zECbUEW*A%q1ns+Y+-FI{1GlpJO}mq#cCDD+W8;;p>6&gxnZx4{O@TsSm%XdtwrW46 zmtD4?dpEH)uq}o4Na`6O`>(b!tBTnD6i-^dnia2C?8GiR>^tJ3ifjXW^a*hq%^^UP zgMSG4L64QWWoSYHI@=Q4&Obt)uFa*)**YN8kEDWbvpP5)Snu?DHZ~7;A7IXkzT3~{ zB{x$d!r3fcPy<8`*^^Q8_QvskhpicFm4gCXsrZr|F194rcqxc*VzlFT*y4rW#A90! zCDik<%xG7^^|CRWfd?TbJ4%hR1+ik(;NDh`~rn?*TFz+JENC?69m?eg)hAUP1SJ9HPoV z&Vsf^{RUGdhHd2omuV~eSnkVy4Kw=WtaK#4PY{Ad^194bsjovsjmR=0~al%V(SBhECV z3Go900C?r;-ly!J_&FcBFECN}I|ki-eWfBDFZkeM!sB*|tvU%d= z&(xMqnhW#Wl92AXqsTa3=?BEUh;%G^2Ytg0tMi0?w~ z&KSR}pg{Le)ZO6G+2K0w0OZAbEYn(k7dZ8>Q#9hhV13Le%tI;`mA2^Lgh)%ANWKzC z#t8)G1hj!r=b2)J1@Mel4-VcLCf2sr+qdt|n)pWSxRLwWVEt%|uGj8#j~Q4K-^|s& zR6mg`g=>kEoGkR>DH?SL%r0!W*Zt|q@&H19uYkgG^a?>FoD5;m{3dYzS@!JZ) zy0`FJ+P;_kO}--gTr~bI{~QOnr2gE@)f+M1B^e0~ZNnBxi{JM>2um${mIUq#e&hq0 zMEqK}zjUXOwL&%y8+S~*m26x|%?29(UzvwK?vG7o7T4|7|D}5C;=h+@R#yu{pynRH zBl+pWl+#_3=dY`O%lfd=SO(ZE-?FE+CZCqG;a2RqvA%YNf{q${)}+6}=c3Z2oaWX~rB zoTWd*RCQj@Kro)7dO7#|jf+W-;KF6c1<~E+nx6J5o^Ku8W8kn*KuAKGJMIW8%qkqW z*JDhi8(sU1ZT!|jg+H;-yP2=QU?(hGEZEL&?C5OZ)^t40>qyixJci}}1_zpmBl(k| z{nwDp;}Sk+3CR}dj;8qSU?Zr_>sZRo%?V5|$HCQ`nx_*1lMgRrzcxOIV6B}cr&lU| zMrfU;2xZ;HD=-I?Dx|LeqNG&xA^oeW$CNiaR_sGz8U1c>qSHxusW2Km^tL?)zS7zgt&9<@Csh2}?4@t&4os zSE)($9Cv2(*x<{4p3nu{9=>?bbSA(3cL#lg-Rb+q`1-O=}XU-U7v6UY2xbEw!-x(D% zgU$|lOuhCZ%(zRqpJe}6MD09bT6nh{eAX0MOk3K7aQO&@MLlDwub_*cnyPs=2s$U}&Rsl@jJa9Msj-ClXzSUk9| z*&aYkIVUSaGQPEDs`b}bFU<9>bSUiuIf<|6OOtPBhYW&9EULfTLu!D_FOSbszh^%( zB_8%gN}l%P)T&vVx?cb0fYBj)d}-D_IM zy^xM2)Qn!h{l#DKYj9;8>?-oJeay`K56mxC@3`Rz#=1!18y#EGJ4WsGm!fJB4}sAx zK9+8%me#mR_+t+skv)vP}N zw>iWoT<|^NwDm%;;B4yZ7O?$Rhde}rz-mKT>up$;h--BE%qMJ^@wY`Kpr{Mx17z?~ zPet)|_6h5Ki?dJaM8$gWVw79wkMUInGx9dcC*CNkHO?~aBe>41hQfDcyXb4M&=8$| zIK5vk%&NmkNKW~B4>TZ11q5iit^9h`_d|z*hbo3}ulE#JZY&+oUH*r0Y8#&?K$$7Y zo>agwtBztoVAoXB6PXa%D93d+NRz|YcBQ0OvKzGNvRe#xZ}S#G_&P>DXh*rQd27sH z4#d-VkRVllIVPy1-y?5dfT%Y&abyY1z4 z6)t6mX=B~^o3z8lVqF1-!XK`Wq{N}_iKgk%&0(aBs#O?!)t{$vXtewD_Ug$X*qC{FJuHeUpaeydv zC1sf-JM)5kr#yeO<;O}rD^K(oJAWK^NOJi-8y;4nX>T6fuT%6WT-34umhqv@5u+|bm-&50Q&QybbQrGICUXRa{# zCdML9TgYlz{hOqjYI&n}pRzA(uVq(C{F}?4Pdk=8|2bLN=55XID}6IFc6$0UkW(@3 zyM6ix!=OAmX-j#XEmAVu+retD7tC${m8go#Y>!)L(&-P|{T+U`wotstzqRr=FMR?C z7GD#k_7Bco-j!t5UqIdXiJhLFa^%#w@(>yq(W?-?*s^+)h5hI9e1qjb$#QFHT6>OS ze9*YB{xy3=pA{S&E!o6s`m}V5&#hg}&7&V^DEX+!v7odnM_zY5#T)|J==Us#Y%GOH z6E_BEyrl)u`bW^j+7xigH`|+A?TIV@7o9Q4=~gt=4-$(d@=@W)=f~Nbq<8Hq6zX zWJuO5J-$G002$vpt|`+p+XMiXQrn0hN8|)bp`+fi%Y0Z8$@5H$b@TqvT3AT>#Sl*J z?rVoj@CGphZtkONqi7rRtqk7*2-f=qGkWc%q{=8n1}lx(LOL|o4V)1NhZE;C?)}pj z?EmS~@VYQyK3iQ z4>}041|0$I10D5M#%5cTwL4~?m z=lY)mUH9fGzUv5r0FGM=$CyW+5fQI`L^STR`yeJ#Hvu7@eoLM`!`mB{xc?g17m=}5 zef~A~yH|IiC_^&pk1NB9Yv)4`(h0xs@oIXZm8wol>VrY>wOGQgyooZ`5&kp3Q_MJ5 za~m7nj?P?;Usq)J@=V2O4)m)k2E=-!*A=>KJJTLcvj&hrdVr3|=~=W;CKj_TB^EXH zjRwws89uk$!R`^EI*BWc(JOJWEs04JFqSbDv)`*KS^nMs4*~3%4L74#&NE~rQ_zeHZa3(7Re~3o*g4v^+no-QiP-`b7FS2r@0IQz{ zPhZH4^^u|I^Zkj!8obd3W`m?);6CRLj&+LlTNWKdCPUl|=KD31VR}dYMxR>tyXb-6DD~-K&qfs+sA* zO|gN#cHV6%bUrBp*NeRe@b!+Qc*Q|Q?G9$;{eE$1i%9db$di$Zvu;kKqBBg|8Weq& zZ!$jwvw>;H-_zc7PHu=Krd9c6ig9SiVwUBmRr_qqe^{^ot7xS^@t{#zr%QIMqhcoT zITV+8op^G=ExJ?mh3aK6;SrRQ!UMp|E5^h28i7lH;yE;FX}-8(&EDm*UzNNn#S|$H zY$#=Mp;PG6DO0oqwnu1Rw9!Xn87Z=T(_GQDC%ysOE@c8_;_&j5r%N!AA0dCkk`_iE+R;*N{ zHFh8Hn_K=9b(MdD=-S=*L`b`R{bN^A2)@P{>sHmn(_ac|5g_>1sWk#_lZg7jk6FQ? z-h$6vz$S1iP+YL0pWXjY*H1=NUn1dQgwXLW#N0Pn72O%7CO0vKaOPxFJklD_A4|nu z{F0$MH&*IQ*Oqe{sv|pD!EYExFWhn<*54k-8?@KToBd*uF45etQju{gE3(@dCuAs1 zjyk7fwnkFxe`-0+tD+y0F6kM5_s@Y~dBz%iXgL*PLyG-`F=Ke%^WH+R$uRmw3di4YLLV@Qs7Rvj5Wa#(digV07$WUbcP$ zLuFv0SQXl@Wqnvaov{+;#eHaW@vtSPXTAl$2v7I~cZ1?6w?^N)?Q-NP*?rn9p?EBO zQC1y)vB2idC}L)Swd2Lu-wq&8RXN^Ob-jLWe;#jtcX4HKVrE(7vu)u1*;JmVE|;9C z3yQDOR5H`+H9->SpZ#4+#^18=lEXbrFe^KIxp?IR!IA>#MdD0HvUor-IZMGRg(oh#|#AXvf zmUQRoN*7y7OFx-^J-IhKY1gxMX0~omU$Q5B(&;newA0vz@({lda zUCV@Vw((ab`(T@=`*1}EGgmG=5))GKv7+1MX}BU-2E+SI6Dj)`^l|?MTO$P$Y`RhI zAsy4c%#Jnwc_(g7J+^nIO^_6|K&Y{f%9JB7`^&xtfFUC($c@>|T9o2~pii%QoM)cM#UU zp3k$}pCGE|C8zG%FkL*^f{Nwpv*Xr;{Jl8D<4lF)x%AeyUu}!d_rxwKXN1lf4NH@= zGqc6hNv>600&#KTR?2juA_yJFBG_Vqi0qLh>%e#o&8jp#qn;Z?%MCfmPm^P+@|IC< zA}j6kSL7DlqA!{g`R*~pjV`?4H#gZUiP2+DVt0A0n~F=f>$;Eh$v#qhEA)vI>FI-D zhkXtBl^AHW_fRjbEEtL`K7>ryK241S_+hpZGET8S#n`**1kW@w^Y=z1gszHP>f^_j zW7dU1l5gTw(KXaU($&4SPX>1P6Yxt622%i`HTIi5-Pil*o~rYix6tvfbs{*1qZsw< z^*|3PPDopM_}l1nnW(bFa>s=NL|G|c3$mi&hoBdx0_-{MwBUjM!7_sF>wKlCptFCoQ*HH)7uQ|MKy8f6N!4%#r5dM z=L|6JIjhVQ-uZw&raQb*+|WEf%xvy%l0rs*c>T+}W1IecY)kt0U-|y)hp5q?3mtaf zw>awjzb`)j^DgA~Z^Cb5+afkHv>5knl_x9PhuxLjBjw&gMso$9E0B| znEifX;iNr0w#Gah2|I~Q%@3z6^6-nwZFE5ZykSVI5e2PC=a0_mCy{>2*?3#G1{Z{D zBVeLdF9%wZRk@S5;H8s>$u|rKQdD9C#o-)JxT$l1fU6q3@~bXJ)ZdVO9fGhIufOe* z*7uSF9|`Vofqmg-uLGFB-;BX!E7&ok{mZ-KRZad1dCT%q6tbS((OW-J_GCKWqZttb zUGv3>0?PY|nw2?m>oDo!An&$j{nwbNL}tgztg|JJd+gdS1{3M$*{nwHyx;Zx*X2P@(P-6|+%*H*bHCHwjONjXH{=jYbRQE+7>jrOH zvzz@rKds%c-lS!mr)7jA8`5+YcxZiHHD?Uo+!3`{n^@=bbCgG?Z_8RtDthYGXp@aG zB*pC!BoC5dEW07RLkq?wk znL%g;f|oA9`?+aFN~PH-wufO>0N-&WjA9aE)-ML;a$J~u>459szGdxle7be}X0|u3 zJF9CCb(%}`oq2k8U5m_9V1iYG`rxbs`TjuxDf$il$$sPs~zpnl{S`r7~>EKPANvlfzCR7l_6vK?qJy{ z>$trM^{){51?LRGY{(89HhS$fH3qxD)c9SWgfmO!x1u6aY#UV7^!&-Tp;6`J^6<9u zzCPW{B)RCix^DKppg(?`n8xf7|MmJWW`0I~liiIf&WL?)V zt<`y?>_|$wQa4i_*c(yDnX_^XA%|pCVfTm$arpg9?jY&!2jG1Z%~iVgK__fdgkday z^nx*0v~wctyz)lZo%(Efzjh|jUa?EH{S6TBL2t4AFX?aE=GspfK52Bas}D7l1=J1J z1IEu|9KD~-P{eJW663!mFY#nBcHFmzzG0;EGxZE~=2}&YeecinC4qe9?7h=&tLR%U zV(B}d;`fcYr;}pBZEULIy$H-}CLe2=`M=ZNZI{{~=c{eaYvyVHjpZzVLl*Y`0EWu} z{!0N^;H;OfET8lTs3049{<=iMvIDMI79l`;BW>VO+#AURCFJ0IRq6HNB)1uCX>KR# zFSJN?1tWQZZk$g@(NgCbqy=u?{hO~W7409RP`B>zZ!#l4NF?7!jH^H=?8v7 z&wLXazjB_!S^Z35*|5TRO*U1KP2L}n`DM-DzUU|IDIZ;JPbwyB66P<3^-qScHo8&e zZJQ`6(zRb>6xz#mMp%2PusL+ys*GjBS+1PMu<)K4*6!ytvFXM9Bv&u-aH4|k-Ugj{ zScf;(GBirY?iKD9ZLQ(c!_GaDAa5dYs}I)=2GSNG%fHe0ti0gh>uHXBQf*qXurMIQ z%~0EM;|oaV$H5EB3)}KUj-dYVde+)E=Wvog(~YAN)6c`6#G2C4lVNLP`o!+bXv4RE z1rBd1LA9&nT!?Fh8?M&KD+OQw(;ag5me%*Jdk~apRQI+!UyG96u5$5o#kcSM_MOPW zOi3U_Wo%0S_$1@NByz`JuS$D6Lq~;fs?WeMUwB0$LDBl=)P*sHLZuj?*1V_IgOLyo zDp7PDiAsXZp@_Y?+MLd(r&|9Y z@%sD-9%(GLCN9v`3%7_qvg_j~Kl~iGzI2~*$-&9jk+x&eZemPX%nBWwtc%zKM#Z@{ z5V$|oM$BH8Mttge^&Dte2-^M}93fWOjEO@GiVs-7#gCH3jvlJud8k-em{(O#kQTRh z?xx&=RVhLOiGMi-8pLe7do7hbagLlMyMW%IO8k_9ef^P}@rZBo{MbMdCF*}|g#%k9 zW*57nH&^y;`-@ztW-gHvk7<8f6-d8yxt|*IUGF?Pb3`o5W82gyjcSh~^79FO7iR-st}`J#u^p6xfps_|r%~712|D=lbh9 z;kZq_>P@{W!QcVV#VD&^Wb+)(5f$=Ymj!OR=a8ri(%}L!kH``wQs1?4tKs7z-1e(d z##Qn-cEM5qrcRh7xuKEjO*n|OPhX@ra@kfup8iWi8DDFw@f=cI_g`u$l9J+jS{^mUu1L8StZY!# z_4bMi#V%n-VP34NBQXqnUK6`sNz!-ZP%f`4E|4>|bAh2;L18f;3hPW%N)g^+t_VUO zs67xI+>o}Pu3nP;X_=`NC1RW7=X&GFtJunp4awpuQLr3!(tE(TgaWZ(M#As-)p)Ea zcq-!oV(q1a10$vBNhja!!(@LqysVq()Zp!zH_>kXLIUyTH3rlovy8QyrE9s-{9$VmfNv%9hayeq^(R* z5e@N%n{~BxMd~(}G&NmwMTJO;3d&tcXh}%k04fTKf;R}L2*|BJc7BiVU%=z@`h0lb zJa6yp59apoMgf2L1A#Y|!y-+PE zx+mUCP-GUdT>i#i4&IK{XW#N^Xqc;1N_{-bP+NqqW-o4EG+Tp^1N*5;CYx6ScS1vL zTHLJd-vI~w?E(Qwo<-%}?P^h*T$NR@!feIjOTClCW{01kV2%j6&t}iD`6%t2Tf(=zIZVVluDZV|@0>d+un6aWbgi!%96*?8*W6)8tjcFL zvKK!!(Jj#bO>7SPf0H&2g+0X1iO5-t9@I|JpBQ%fC^Wc>@`a0wc-G9nelqZM=GNHZ zR<`9TK+W!-C0UuEHAo0VzIo_6U>yh{^+Ex>>YO{ovUkKeXTfNYh%&1A49=UE{MWkKCvDTm+jM)5c<6lWu z(`kHhLHeP#0XVv?3Gq4}ZxNq6&NS~x&h4J`1`>Rhw{(F+xn6_NIuiDqjL;P9+6U0K zD6cy2&3ygwS8cVaa?{D0yE7RT8y)FL&fx;!U007D!piGnZKz0;gROUX%8LepHgL_d zV*dv3md6&oSCCei<`KE81H;*mZd6$=3>pB-R=Zzj8Z_N;Y4fKf5rvTGC%+O(omJ~S zVy3McpUd3e!-t*Fx$IXk%NG{6 zIR2?cV}{Wz$BPvE3vkV^- z5|-SGJyX?Ux%J?PmNBxsbU4vsguPYvR6x^x`HU{5rGpkU_+d?#bVJY{CJ&G7 zKo*1n`_kjBHtWH8|93wf_!j)H5-)<=<6ryxoVUIr6U*`Z8z7rh|*SXz-N;52FgHt{CDK+;rqv^J}z@TGJQ#JKXz z-S+J(y7Q{?f*8V4ue~9vxWIn9Dvf|g%}-fXH;~#ZjrC~cQA_b2gJ+f7 zW_C;GKgQpsfMIK2$z}q93xt~!?|0f6FKB$R7#_);<%a|GTQBb?b@no5O;5)%Zx2aM z#n(#s6El$3ib`L35I^tb6Tv`KpO^nMdq{B7Cjlg@5`9ot`DQu410cO$UVc*HH(YAy z0M*#)MQkEJH55w<#wW})XyZC!7cz;5^pbOl{;gZeZysD{cg>N@uYAe{`i4{ZXsS=Z zX4Aw^LOL5nMVY1f&v&6gsv8-8X#d)1(4Np~@?piCpd2~zpWQfxzq6#QUKNj=7L|{X z5?wEEECs&!%Ew!t`%S{sjF5g-0dPgs1V5X07H0(XTi@jN9RRj$^mL~gh+5Flt_T?@R?5gdo zb(0Edhl|(JK}^Tf!(04m`zem8_o|P_F?P&>f8$&~n-<6^n2{*_ zb1RHXRp)H$PQjDjSYq-VK_GIY)|nBTnCSWLH7!S-LPt;3aD4diH)8{>ed;w*)v>-vWW(DXHfo3Q?UOZM+%I*ZPQz{2<6&5N$ zlSh2eD4!~G?#1jyl34!i(S)^5nAZu&lz0OY!E9{;#C+QPS(i9D3ER1w*Xi7ff(59_ zhhhCLEnO?+16=8A?QTvpwFnD11@u3isgqCgw1;j(r*@ia3KJ7*D0Gu@vT|@~F(s(h z^jAOW)_GXyfW$4>)H4KV9J(6fb()hS8_p4D6K)z7ew9VM3i>25v}8)a2OO@88}3IL zo+}yAy&GdM6oEShmkbNTaW7euceC8pVG1*^WW71N(7?uk%W>o?bAyRh|6TTz$qbCCYr}`W% zb1y7mHCazC-3%`Pl<@eEsZTN1AChRs{PL0K;6!q$D{oB3>&RRP^R7QYK^A1S*kXd| z{wURXwEhDmc8oYwGRd_TlT{y$tYJ%6U72m!dPgXte=exJ+p;61k#7V76^HsRqt?GL ztjVMWK$FBnlUbw%ANHJ$zCyTY`!#}-qq@m^^5Co{ZsZ++n@?y5qf*B7H%m<$_kqQi z(NLh%B;J zsL2nfdn*QxUgg!i8de0Bb4<7~*fXylJ;?SUirQ zmI|=x=HOO1^5vbHTu=#hK;bWec3`|7r|1QY798!W&(F=-)e+ za39mJ4+YE=+Ep;8N`~Ln?>bQBeS3P4q<-Fg3mE2kOhQG;=M8E6Iy=yp7KF zJR(J7ubO_7uT9K;bjRvBF#|<;4AN_i;%m@&VIGQuf7R@DEw&ik^ViIOaxbD#}Mz#IqgYX@Y z@}?CDZxzU)Xs^jqe-(%)?>`J4hS!7XHQJ1rg*5?6`+)q@b2#nc^3(LYT>Mgep)mludt#=9i)2f7@7 z_d?rIG1oCxgcvWeeJc57U!U)WDK$*k^KCFS`nBmVt)YkS39>t>d@2CH2i;hYmx6;s zYOUv^2<{Jo^Nkb!MaQl#2+D-Be*9Y1F}z55hpAc9EFP&#^(?$9cxRYM!MDYAFj@rX z{XgLp3;b~UF$p=v6W7?P`dc5S^@FA*rO5mEEkr^ErZ~e4@6vje!N+b;dt0NbkHg}F zG`p$uz|XI}#ZPa>-Pj!NPaoV`4EJdW*0+bm`@wi_ji|`ior}6XpES2dKJ^(+q*jP;(|jp@ z>{&7lZ^Q5ZO~2tWU=g^|Rbs)Q>#mz?_-|yV5FC}#exkI?)B*ppZO+X^>$Sm``ILkX z?e(gcY;EATABcjIT-TE_gBTq|6YzUfFr1Y;AsqQ;kLx#Ru9l985RLrUHT;ptvl`B z?EL42MP1^47mEX49Lc4eh2y;Owl%{OpfMAIbAjxcfZS4e70pKV##tEM#=o8AHMBKu ze@HZ3)sBCAD3~aT-aa4lUOcpd?+40_mL4JO@lv?9i-a;wK_{!eyJY1#i7TmwcAKtj zI?rWOFGbt>ocBNiRK1Mz6B>E-`Ge-bV-eD@`b>>G7_f;#M2%kqw?!KWD&Egt-ql&R z1BrXk*aOK28oR!xYQy{#)MX5{S;`pPwj9pWE@OeKm+NwF&`!1!xa zL^rt9fxIaY&A3mI>?PVlUvI)8SacIl`#o=Yptnr>1etVfX7LvQtc!EqMA(aao3ZDa zW2`grKVv`MLC46+DKH77zVhV|#dCH@$eX&}vym&1Ipz{R4ND2tsE#UP(HyvcM*lQF z92UCD+T7A=x9$oo@1wgY7mHvWF7#={ed0?1wl+LsWzOcG24%6CG{F(iprBT)X&Xin zB1V1C7%d1m(7iU59I?^8`TXlzrAP0|`8`FYpyhogG&x?=KJd|(U5=MJ-?C#>YU=4z`!+j=L>3z1(+boj} z;DX*)vX=4=Ay_KY)pOR{eAjd{Es~P?^%I!lxaH)NjGcTm)c$DO`%Sv2|W>*$INn&~8G zcJ1-G*EpH`j`$3Gb|Kv&$q8Qxh3p|^Ze*Y)Oy7bFkOz8I2J*pHZbAV}tJUQpV^!+o zeVl%5w)oe#6YK12jJ-$m=|v3E4A7@Cz|0hjwdZhxuv$B0T9g9{miMO1o!4n%vuHy zxCxP$DD$~y?gQng4^vved+^?AQ211S^-Te85$v~@q;FzqYc;+^NDPIzXnGf4rGzCX zg4e&`R+jKOA}s|Bb@*L+XA-u0g6K#+Ss+z!MgZJKfiK+X2F%qrZ+xp=D%K6FSX8q5 z&L>4u{mjvxOLXrurc0Skdo=ZW$K8 z795cWS`qouVt94lOIa*(qgm#Y2BGAK4`1YLvODwc!}a>|#ZMc9^t#WM{bNtds3Xpr z-Hjl5?3Xg?AJCD%9{)fU6FgRN+kTI{qLGRZ0WG22SQWa=b^CCv%S4V@5jLy-?c=xr*;+6%K)6?Xkz zY>8Wahg|Qek>GQ$jn6qg#5>gsGbD_0GL{>-xCXi(7d>}>OGot_FeAe8rd+&fhSpi% zYPOI8T}ti6z7IO@IyoP-wUm2UkP6Y>-oCIP@M(L3Co)F-70l~sboavT;<%O3Eg4lJ z!~(N|qY~C4iS(JR(6baF{4AgjTpB~@twS3Z)$TmBR(ry;#Y$Q1D&q8`!|;W%dF=A8 zUJ&6xV(9c*!EC&rlb!IXB%KAMsll38AeQK6HTzwVL0SrcQA+WF6xZCRdiXcKST32a;XnSO^sah)^L^<10myWE||>CkLTghVpc3JF#GvoKW`^`382j9c5owJezE}Dkb<&d z7aUV?%-lG`Uyo>Wb~EWhz-0s9vi>}Orh>6E*+pDKgxY>YWi4gY)F(pyrzNK}#bBFt z(t}oMA=*asUMbHb;6)HmNLeX(;$Rw!z0$u%qc3~}CXb4L_BKoQMTIUbZCz?RHAU(| zjZ7d|WS-+kM8utmOvt+AKW@4q$|BjMI|D?iKuMzwp-IrqXtd*}leUH|yY7Qg%5u|B zG)SJ=3t@@MwGgHO(N-jFt%lIv+ux#+S4;^EOTje{)mD%o;#z8Zix$)ZWE4Oo;X9Bq zH;?I~CAUcL$d|vwwOGG3LPl2mf2#4rr{NR?J>U;!@*YQaPv*kX>hWY6n+Fo+FE86Z zO;)&6;Dtu*2@@M)`(~eKkS7k_SM@CZ^;QS$HSkRUryu?duNg+gOy;zeL>-1`0xav- z;7Zplyy;H%P+m_FXJF}RO6IyWDT4)HEL^#y`F0cD|8)D^TtB9FJ{=ki{FUPrtPD_dUBT2#+_2aqtB zQ@fa-rHdmSCb&uSKke-FXLKBB(BW1;8LEZpWAcp(phW3M^91$B-RY&AXocTV)%2m6N!NWNF%f86 zsTx$zU(VL zdDub#$d})gtR2%#Z&%1?;sYy}as{bLq3Km`9ZqSR9#Su+#)Wa}yEn;i2k%PyNb6Po zt5@c)Hw-K3qigkm-zOcy4(IiqR#%h+?x75c+Xl~QG8X$eO-&Yz`1E0f~ ze~UN+ZX3!8e`?aShn&eT2w*>ZO1>YTnZUC$dh?i(P|;b#7INWB66$W&vf(t3I#-ok zh}5j7;!Ov1lE%~)Pgm;{xsx@Q%sINbztm$kc)I|)lm9jHYw@pGX}N^Xm=oCrws6v6 zX1oB_I*|RES5PY?ofMYDgE)S@oa>$y)8#S}8z|-sbhc`*^|>@K;`@o1rj?oK)0WOd zxaczYGa_P^fx^ggV|A@B&IR}`LH&G!xe5JnXk6N-D{@7H3 zQxL#Chp`OyjrQTo+d@1m#Y%<0tNVOGu~(@tg?C7|^q_=-VvKx9zO>{{XI*7%@zX%-F0ZC>Pwh7n$q-9;%%BHifX zkgsL6n$_j1T)HdTH3V;AO!SMqcW1U%!Qde6`N-XUQpw=;I1I0na+fiHz6W!uBtlXO zEhV>>4H*)9-kVQE(9Gd|pMYQga>P&K%gGcH4+nLQre1y2ck=sy>H_(}5toO8TdBq7 z9vX~BkNy0k`d;ly!Dnr#QB-u$*he=pn?ETO&v`@BfT>95t3=CTDvuN3Tz^A7*|$zg zbga_9CT@QE zxk9<1p~C*B6I63E?k&h`>bqw5E=Me~1{-kt%)YFEvyP^p3U)r_~I`W_@~Vkw4C`RE?Bw##r#6^$Ne(T)V<)KZ~wf0?^BZR*v`u+PRz%D4fi7x9Hchme^oPZzx<~9=0Bix$d}Xup-8Oma50zR)PON>-xC`6W;Mu0`>kH!P zWq!+**m$Rbnh8$vFxMRLXig1bX_s@AqTJHoUQfvhY;yL!;K{V`>B4;@!aQ@Y<@#M32y+i(SfawZ4ZT!B?3lZ6= z%zu_H@Q_wB-Y_d7H&*{|%vT{P3_W!+9vUn3W8Z%AO2Ilv9L2CdzjCA%aApT|oYf)` zukgjmL&?L0qmWWpLB{7o+Jc{YVS7*+mPWDXSDw4<$9_Rp{Ao{{vwWQfweTXS3JN*R zx2k`9?d=vSvbWbPc5i!ll>JBmFY?MXKX?rIU&{!byY17*8PR^66%RRJ`}I_0KyArj z1YN3nSu+7QLP!NMmX$}1mD5}6wY_XD2d%hEFDfr;s=-&{F3{FO&}K@m66oF>%nek& zqdB=Jj4N+qy4{+12raX{ldMoz8(2lU8nx+C#g)mbK5I22Lc6hcGnc%0vfRNaQXFM; zSMIw=hyWA?24zJLKDroq**p#jgH)6kYkWvM>hDzT6jxHw{MW1f2SlH5=6E!Tr(3`& zp3F@(-3K|lu2%RbbkwOWt3C~a!5in}n7ID!u&_Y0z(tz$A_Vt#U8_Np;)E#wIgKOW z-Yphrfa-Q`uf^3eyDllfUGy8ie-@79gzOG2UCwTv_y=jKljt(FOn$Ye2GxkDpaSm- zd^$CHLyWNXxcLUK)71$7xVexW?a<1j&>}Jtwd%TiTKf=A`06d$OM1V(!=Jt6D$DGZ z698?ZN?=USd~Y?pu)vd3JM98PO$DW@ud@kyR(eFyJ$uSbahRKbQRaorMAasRf6xc5 z;or<%L+4pr;4r|Q#wl?H!0&gjZwT|xUOg^l+HML{ z_5kB41V73uBgQWnh6z0lY?&7Su|dc+gE*&RGEhy3fYS0tJOyf4Sh&b9YJmZi8uQsd z6DEut@R&ulF=sz&nzVh~(V7;=fdh8MT@gfP1*CZwTExKO#@91SVN(M0c43N` z#gH(~w%3t>R*rTU(i!3GXpOuKy&V?K5zgJ+NrfJ($WJF^5V;1nbL~cdMNUY-(+s`- zr~obkfjJTZt#pcfQ4_+kG(}SdVm5?gQ5p|>yJ}GbFM^5pDI%bb zuji!G%B}P%VPT-W)Mu#o+kLw-9N=%T-PSG!ntR25DumNB&Ttrf_9-fmI~`3&r+c)( z`5$DN(6lgxDQ$EJ5jJX_nG(K3GS7+BC4zJHVHMfFQBcp_)Z3o3M~TEwARCrBSkCm2 zs*wk)je8-PF$6{d z_mr5Y`7ah}&=5jU(M5I7y03I=D7$TSUZCvvj&$BzlxLQJ++n7YXP2mblB+j)fMr!y zt&buzUWT1u-?_1$ewmy~_27hrVpN(NDE!(N(6UW56e{}0rhozvzsGCbIpq4wuS@>q zM^E@gZ~9-fwxq@dJElaoJr8QEy9eM@u*BcywTdF15hDi2`ztWAW`=*-nU+;Hd@~^laYW zhv%Ab*o8YmX^9Iej_W&(XZ2QHF1))oQO)!>tgD_v{d5WUK<1J~(cr=ZW2c42-*_wv zi-PsVRzuP;Aa^{zO{X6VsB;JvcA@mXKr(vXHKPuLkK>Q^vbxU z&Ym4hKG(6QG2pKDeS{m}zqUthko`J-!+5gK6W{5OARH3ubS+NXcb)0Dd#a`~u0wWT z?rAp(o;d&-hs7n7{4W461u&hYAdZd3 zuWffOEQ4pHqrZIH1smmFz5H?3=*HCqUx^Ae^kBeYMcQVv)u#J~kSu+H^bw2EEnaOs zqG10>U4Gakj5Ca*l0m+UtH&RogWk1IcOqk-q>4t>FUG#3$F?S$%dLYry&0!hFx+Mq zP4rFCt|bwl_jyvp6S1?0XlzInYQHe@!pElrms4`fGbhf)7iv#h=0I~kb14CT(|=j) z_QV#|R5_FTcv%gEQw*BIO2|1mN0K1b0F8ZYHmp> zZ;1mn+~E}gFw^#q7@b6yz%sc#oK>%uDFAJ@Pj2IibT0UsvC$8c;6l3hc4YvSee)lC z^A2)n-?jXbclNy#+34@c+*%cFbl`&~>fU~EyG7l+Ol;Gt#Kni6hvqV>y`F5S^Di&1 zd_3+x?9M`!N97rm?DA~o-{i@?#Q(%!4F?3KcoQpgR24^}M2ai&6}}tIcEGF9$mj)= zPR_RW)WtQoGK?88PWU7YAb`FQYLm;cFU}Rs(6X(6p8vR2t=`=3rhBaxyzpxSG-BU* z1g${cce7Vt zot>p{A5rzWdLcTZur_BE5zh60x-OCRx2~qQiUlHi-&7qV4d#o$Vb#~O&cxM|K7gL7 zAjrz2?d0H~UG>Z!U&5FIW4N%h(eJH`YGGswgj=~5xyR*SG=FpcVuG077)&-v%`uW1srV(uPpi};Uzrvf4s`L1|Nf1DYs z5&S{$;d8+p)B$G^*4 zJ&^+EuiO;~qT(<0Y)R+O{yjc}Z5%6XB2D)ZnrP2Nt0jP~+*uS6s6!Mm@ZxJxC@|K{X^w`={K4?*`QY?4&#`iU?At)PBu!ml; z)cT;d1TX2AQA~~M8aqu(US{h*+lr#LZovWw$Gk}O_1*akH>Ar$QE8#Jj@Fir9S8Ko zq#dy@a90=8)>NekOZ3>Jq&1CjA<+iGt3D2DOZ#b5hZ8~+WQg3M3v7U*U6Q? zp(7|TjExabQN?dEB9CtLYzg+$p}|8Eu3e4P;a<);X8Ox9S7+L?qUdeHDC#V^<`W3v zSiOi_8xBZHj1z%8J)(Il=wm6HBsNsYJWRgt8@IGHk+fs7>*9pjyx*RGbBE*{;!lwd zxHd?cEo$(Kr1S&|bdy3WjgT}3T`t}9k!2@pRT551(4a1G8r{M?EI2VN=^ro-ST~`} z89@Ur`Yt6SzSd(iWEY6GM1pEJO8VrZ+LJ)ki1ebj*KSScL0x&?>%-E(H-Fmw8nIgf zh{W<&2G5vH=hxNr>Q|j6WAkv=#m&l5A8LB(zz%^u{Bt6ty}#@C@%H&vr~A6%I+zDE z1v|yt6MY9t8FOv-nAOpP8jqrj${b4G$jF@rp+4>dtz|L&p5TnsIvLW3l->;;{-u3Z zy{61rh(u^!vLjheV_6JcJ-Vp>=o%smV`-Y`soG!1wRk!UaM+it|0r;S$8Ap?oZ{LA zTui`s>w3vO>Xae)9&P3Jzob;!zI$UU@73&ic<w@$4&`>Vv(ndmq_O^Q{fH(#iR8$A1LeqfE37S^u5e zWUa!uq2rFqp3fKH>-FzzU3=^9GU~v#jk{~x9a@+aOaCAaviuNK5pY`PQ?8-#ct$Z` zr0hb>X!t{B!WT(y=@W16ujJVCw75K29AW&5KF)n#q$8WDHa?Uxc7H!`Abx)w`}mjI zwZS1-hL5z%I?8?aB4chl;(|=}RO~JraI6FW4R@Z3S-5p0xypRXS+J8|u2{6u5^Xdo z)EGRZFcm6H5^8XqUACat+eh`7fY-Xr)%FB(%_%mhy;7Ukb*gHDEq&xuMZ9cIifqX} zbY?CnYuDB8(1vxP9nyBD-g-%8A}x349%hP&%YOo;VM^nr8wKUZ+Wr7^yVZ+k2vwc@ z=gKV>jW1{*xaf%DsN7>~9ibdw`dMe^i9MG~SF`DoQNf-1Adwi%O2;V@o0c2M^0nlP z5vq|NNY1stlK^t@q0w6tH>yyoMI!NhVn?)N+St4}P%izN>fV|EJW-rA$}fZ(U2DZ6 zi8d9W%;?%S`VT}}7A|yTuoK1AuLkFE9a(rQxh7Q+bZacXUN!RSVY{<0DLT{m^R66h zSrOjCcl^rCd-1O)Kb)DZ{_FX0PdKKT{>LW$Hx2a-dt)QdnsWx{gp7Va5GaK&Uwm-H zqYxTd0H|SqitN$7{iE^k@3{Gaj`0Yj7U+))#mntS{1Q8%1D5T(!ezmke)j*YW`x=X zJ9jJp2CG$9J8lj;r)zRlUy;X>*?~{QEv*>r2P+>#I)0!6j&VMJ0Z6M?nf}Oi>}<71 zNkcK5Q@uPReqmqIG4>5QHNVqTA{cW68X-xMx~Isg_Kr%6#uXF#Z$uxqARHi>#er=l zlMy9A=yK0_kcCcfA$nGfmP zJW9zr9?9*>Y+mLzZMa&@7GMO;O?=gC|A1J=Do3-iD_MyGqNvg!qbvwb`H$rm|F-~{C6tuZ_ zici;Z6!EdGTL9hK)1mwFsss}AARriYnq|B8uwKdE$6-Z_rve*OTByt2=FIjATzs@C zaIONGZq56Ve73@T{6bYtP5W?VsbTCr5UUHzoP&PulAhY}q_?uHkKFC)4wPfnIbwqatFrW2m-ZFjCO ztHb*A^^WJIcn?Me{_1};H;?PICjlwFdA}Xr(`h{XSPES;CkX>p)^~YoF?U(mlC7Zrp?H*3>9N3sk&!&=s4TU_I@=X{%FY zoM>wb(TQgvlywRyjMKbZ+sS)8=6_f&E{)+wE+0WueMR8E8v2OSRXI<4ijjo8hYbm! zWV^hQRWng3oh>(DECk3eT) zOxRL%SRk&(F~c5mr^l;v@{Zl=M~u(K&I;e5VP9o0sK{cg8d{J!zfnk0{p80DOpllr ze38^QrM`I{6t6LSyC19*_77yjbdqYIRPLK&w}Qa{-Ez+zT9becv@G~Zri~HAHufPX z(jXje*5^NU?rN&eMTog&RBkIR@9*3BY>beOIOc5jOX3iC?9HQl3%4>C)3|Uf*XL$v zSIu}q*fokihww&6Gh<=0`9+9(ksXyPw*XgGk_BA$Q*O`CJDjTKz} z9wPr*Vqod!y7=QhBlhyvs|J~G;u&%NI=bPg(oXSUKaEZ|ZqENGs#a8#V=0p2=r%Qh z{{z2mE*{cR^$T{!s*VOT4-azaRO44?)BRJtLB}%FZ8`N|gjWhium^S)*L!8A^}==! zb}k;Z`oi#&yC2tAa5y(&As7_Mj1VFaJ;NWJ3TtWVxuKaBiN+6+BIFnW6T9Haz37M| zT?3H&oRT!Sp0YvydDQp{B#3nZs8{Fv6E>)$Tg6J|KnF-#0?_9_OV(`7kI;Q1N&U;; z;3JAceY*ux`;kV3TW5ijayaN=L;$_9cOd^KuxO~{@hj!SgMykw1<-FTR8P@Xg}&z( z1}rawKTb-%yQLxZTbr2%+2y9fRI}k89ZVXK4R% z#j?p)d_))}ewBz7YV$Tne^^5QrPtu6{Q{3qK~ycDt~u_9R0jjJo(;}f7q_qZUaxR4 z@n+3{>6?<8H2g{pZUyxVBOy80mY!miJfFAfpBa94Nw7U>56KB@r%$(6w4Z!p{3$I~ z^D%zrUg>J=w^We%#E#N&3t5wAdwVgz?DIa(;BWxUxL7a=$BZsAM45CS)lXnYiHevS z;-SSNZS<)%Vh{{FCSxV&o}sFY{UWSROTw*@rF;6LKer2DwvXp=A2HzO zIIbZMvHG2W)}S>!o1v+3+pniVqCmXu%{K_oMfM%x;ZMw&ke&{$fwk!}=PViO&euF3 z238t>x{>7$Xp>8#&|O!Tz`z(w@uf|HzzTdCJ++m08BjChCz1}>t`uVUt}gl~$ujX< zW@sBfI}DFQA=>h1+!7{=0^DGb^44+$rgw~iEvQu!Cn_Ueez7l0k1TSC)4Yhe{b6aM zX%iXFr~4x6B?2i#TM&<-2=j)!j7x-9!St?l&H8ZTS0!nNk9E9jPycwUU~>!e4KN$@ zvSi6C<@#M;{@@0vW(X5*xIwIfS07RTp>%VlmK<2zD?b;;29qi(pr5MDf9{_d@mhZS zB6qNPcx>gtZ(i2#C#MC465C>k$oj z6_f50HBZSf#}rj&`l-|~VNOP+q=;3~zeV---4eKicRSs(N>nR{m`0bcT{$dI=Ah$qq*nOg!^DEDlW$!xz`O>9@I8K$+%mZdK7S3aD(97r%~aB|OjW=l!&B7k$Z zcV^;M{x7frn~@2YtTd?`z}Ftmk{9?=5$*%U*7 zpsQ*CquyGnld;lEV>i{qa74#uudV_W046*>m|J+vw)s^v;5~o2SZaTVY|`HEZHXh@ zJKJ_r5^`4hAk${C9dt&I5aL?JUwFadEuC%k=j&Apc#6%skxQQb)F%>;wLtC%-wwQB zyu)7}SdiPJ2m3i|U)!8d6$h7i-I^%;llyhPKH%A>=Mq9gc}te3p`hHHWlqxA!{d#lvyAEp2gcG&Iu=-U zm%n@8@r;{B31@NWL<_LEH zC=;{oQ7K_8c_x+WB3OLNY687ep%K2>V#FLILDHLEz>@|A>S>mnN<o5fPfE=in7$eFl6T=q+ssG~PF5qP$P0L|mYE$_b&7yF)KjmyIXet*SXT zZ@9iWOD@jq+#4{BscKvNz9B2Lq}w%mFJcZs{c$$HJI0Jar+p zeyIj%5(d;hJLi|)yUIG?+#rLUIs_!!%9lCA=Kdf7U>4k|uoK#+7juur1~0ftV)YB_ z|EdX#!~9IGs5xe_iYGnKI-BtZ1k~-8?PIZXbne=W=gTxI@5#N@6}O`!wppp?H4~ZY zq8SwSUHiKm|G!ZH_E2p2{-Lv|wR#l01klZXz8pUO)$9Jc9{tbzrThv{33kl5c0un- zCGcYX*G9>7`zfx)eiMA>x+gB*~q6RqNHZB1iMyFd`kq0CN&^9gNc)E&G zUE~LxIxfLZ0mAVXcnvZx9Ewn(%KNK+samFTOv%rLWZ9?Glh2G9T8uWsnzdNarE9i# zR$v=_VCF04Ev^l{t3!S1@l4oksTq)tS+R@0d?@~BDYEKL;TeT>5nd~8^6IlQ z$a#;*-tXa!z=t1|eeu?Q^3KO6pq$#jAxc4CGnk`3Dc3z4cQa!bIwrnPsTGeN&W$Ry z5Ed7f1^OG;+z{!p-KQ8wiDbWs&Vswj&0OXWwV3?v`>yJux+({|IPOCY{_h8Ei!PZa z09wJGxBl^c$sc5E4>BBU>R>4JSkt61hyzrveK!3a7v(IOtfkEsbUoeFuq!sJGqbJZ zCvpJ@Sct9dtQ^>Ee*6E_Th{+my5Dc@&U<$`cI-&w86SwPHLU6@);TC!N4#0AYNVMn z;OrSD2Kgk|YZUjbjL5C9pSnBLx%m7G_tCZSccqz#4BH+buDv6=Q^!r&{a`|o>7+klx?)y$O^tl>teVc9mZUH? z1aq^Tr%WPa@_Alc8De876)GZ#-mYSKgIv{3G-XaXEv23HbW2&N7*9W42c5j3Xl+^? zz`^m5o>3qYk%-KkxLCjX>^|_`LY7~D$k`Z~e#?g&^Hfj^fQjJJZkC-)iwS9l+QK>y zmziI4ZrtFabPlg(et%iT%D=gRH0uYVu!k|YN-(0eyg!=2i_cSnYlY~5AVq`NO)Fk> zr=Dswslkg@@l6`M4m_F)>ztDuM+-ZRLHE}dzl7o720~V0_T-hY#w<^40n4JE|MiP_ zJPO^T?{Ah5%xUX-#v*I<1AEJ9oqFp8C7G%wqecPWdja!uSRNLp|53w2wjxh{Q|V-rz` z|7Ax18)F1Jb>G8KQh^_=e0rv(q+&En25I!|G$n=-xY2PfBHv zPj=)dL8HDtEPME)=hYd77BjO>|CxoSY~)Vm^vu6#s}`U8|7d#qxTNp>|Nm^AliR1M z+ovVv<=N>h*GZ*5d3}M~>CCo|E7oaw4WzC}QSl-#kgIkotw>#KN%L~8l`BM4L{J1O zLMuX214I-Q1yckR1mr^ezWe-czyHM>w>R*9KVPrc<8i;^YPqLhC=!%7hUU^tENotK z=lE{?0)HajwR!y!<>*EMgK`9@r=HKsAOFhRlcl~7ipLH!Dr+=dYxXcNZx(qrR_q2ic~}^PM_2=1C`5uR`rzHas)N7Tyv`(fCf>vEe_7-Xr6$H zG0HfRa3H$e3_@_ILS5S^EipRHw^+_xU4C9j4Q`Q<+m-oy`ZoN}9pjh2sAU721eTvP z7j5=@?*zr%=_uY%K=d4)m8S@NGJjF{(DIan(nlU6RTH0&NYgq4i*U01r@;M< z^BpbW9J+bpcdzDlud?crNg)e(J*H`$6dY1tiU(hVhM;Djn|dg`7$qx(WNRJx^yPklDyiQbXF!_%*oAUi7maIN>z>14&baG`tYk}22wx@xx zqW2)KdLTSb=>}R#CuFJ#dh5~!#ebwSg{n*r#*~+JD#+vPJnH<1gWI|S^7RLcYdh(LJsUvGABpg&-TdoUv2okx zxn*_ienWE=|I#UsF5Twae^V9ESI)C< z*qX1m1qdoX?nq$w#HET8J{M}EQYW|oobSfn?FOl4?E1yfzzS4U)awyH=m3Q1_y7%? zZtK-1TIGDN+@IOF@Vf#6wNCrh-n^N4DkO(Q)3Odl>vq@}K+O zr#A0od~eTG{cs@rQk0k|`0u|jJ|70twEW*mi3hyvy=&@C<~3yMHu!GV!J@E8M0xi5 zZC-52<(aD6t~x5|FfoempfXi1Qxm1#QaZEs%e%D~NKr4SjbsM-G^(7kr!sOh2~$@b zK0LAdg`XE1EWwX8o+S8AUDQepf5{}c^QZU)Zurx+nmRTJ1I`AkvG1|Kr-05{drc{& zUD}EIwJ4*h7R}9=IQ79k)UyXko5S9zA%QlS&T;t3y(7H*$sp`IV(>`qg~gu|GYd9Z zQjdnC0DFYCFZM|URP42eiyOJMD;MltfZcXegzgLL8lK7-=6KEZFKWA2a->Xb-)-uQ ze;1~j-bFM=17dngo>?NUIp7mX+8H=<^Avsa*Q<>=(VA;Oeo)u+z43x)um@B+l$Mq; zYo7bHqlF~k7x@PwQLIjPg)!2tbdU3k>Ia%SGcw8Ih|B=NLa%kNS4_D2#rU7Le)a~{ z?8AZ}DleD)$sUp%7eNw=K>LJDYfcIOH46LMmzWZ`W28MAXmay4GI3!j(PU z5b_{ZyIZn3Hg}|o^oBYz)8PK&b~9|5!LvVU&)wXS8dlf!QQf+#dhYcFj_>P7_O>ubZ%H2rmK?E$EP3&fVk$b# zcC^Ad5L2=zXHEl%Yf#lMuup34tPPihB;hyZY-v@m6|$qu#$>dJWFC~1v@)MX>7)IL z6wuTQevfs3r8&E#7Cp&!;a0RmwV8=PxINfY4J|iaMe0wMVegEJco;T7%`AE4W2_HO z#MwFrS~dpjB|kRbLsO>bW^+q>|}FqR=E`{u$D1_>r)SW^t@`9?P^<-mT1QN5%Yy_$^Jr`gPb!GZAc9j|~G>ljZ2-pMOR_Xo6ZOo#?wKGxM zX*HalFa!5LqA-sH%|dGK+Qyp?cc8s)GNP2q+em-IkmfRWF?N^V@-H z7wDf09^O%Pei4jCEsXGn@+W$9xV3OoR416It75vPib=ujzvC!JAr6yMInRb3O1KQN zZGJzn0zzQes=hPr)iaR1i+4}JP>h8s5MzNhlkn@8@M?Ake}vi=J6DQcik zas;3s7tX{N_>LI;*ZGAE=Qe{|9hPgFaBG+Z2znXfG;0AKbDmd%ba!h-+XtcHzhKSV{K0*R4jQThzq1sr%5am3h>& zK-PTf@l@9lo%J)EtUKW$tsr9p&GR4hq@)aq=30T@W>%Iw{59H^ZZ2(7T*S>}dL6N$ zgDlg8^9Nmr+wCtE4emD$+|6eVu4g(`lH;C=H8IKPY_I~5IZdCztt0;@?$0d%NoksC znHahg#gTc4M)#dcKF;l)dtrQ4GOuzgh|bu_nLF11YeL$q+pMt?rmjZ}GshXq4v4vm z5$;a>Yuj(7Q^q7S&^p5vz53Q0;+J+v+zHR*cjF4CmP(+VHS0hZM+LtM+(V!63t>)X z5008%o|bmIkDdBtntSI*JDO!*f@co_46TAKet;NEg9Ne zOhqq7tL3qji-9c~9^w6sqH!N^|K*~U;nbG1SIX%9+!krbH@bk0!nB^{KW?-``Kca7 zc;rl#95O3h+CJ%ST0EdU7ueOZy#U{(Ev7VB^`GMGlwXS6-0uoz>T35ZlOKWuZ6B@z z%q{2;s}eo#4?mtFUejNR!-1{ar$Zk?KAf@<(*IJI^nvtmzNCNU zz?ofIbZR}7o7j|A??I*S6shaPx1|D4-zSSC-q=)` zBwjx(DURu{ID~z7#FToJnxlz&ns+Z5LPYr&aO;HWnVz>hxo<$sFeZjYIn$#hoj?w( z?h+z+)$mqrcy;~4Ra#wxS47FY9Ctg~L<&7xrVD;4N`ILzMANcYmNc^neE84=gX8~f&r0)6PiUOCROOaZ7HIstG_H~ej-E*pN>^!#}fO_hZ^6iv@m1=fmqdl4nKa~x(zj-p}J`XF|F;U?21 zl1$3}GvH3W2zmPY*TiOMs}yIS6WIKhe#oWJ;91Rd7v(M=jqMx{>70Y!>fXIy%~hgk(epjzF+fzk?yF(oR|oe(A@NB3wzf&2kRWPcAi1 zRz(1mWJZs#>A?-2Qn#OH`|}#Ei(|nK?(9YW4ad65_2ql^UY4;q3YMqOmjt49uVP7;ZbPS z0)y>+OL31KU{zwhzd_nPhvcgzU0fG7g(_5Jur@m9dL190JRcq)`n&1D#!9`*SK%y3U^Q`D1M-G4X{UJMD(zu45pZH6MFkvA;W zAA|VqGbggXsk7{2`&a+kQ#GhR;ihS^HwFu`v?1-WlKd_ZOVV7g19Sa_bi6Q^EF(-h z5318+A6*%xOIsV#ti|vg&W#&x!UG^^6PX+73UVx;uf<3di1c*(;iSs=E86nGgOBS}5{oORJ>;66Ea$ltMUI7(&sBjXtw)biaCMTtrxh}4|&TEZgz$FSANZ)>t$EiA&S4~Rt<}jm7lGK zm;e7P05UwTJxsA2H){P08YvkR@+>Ea)_C0q6Vk&eaEID zz`XySN!+$Hu=GpG7tvkouYQ&$ZLR!{c-QbB`i`dwBv{z-lj1U+NyoThsLuPHez+HT zesM>$6ld9kaI+q6z7=bNK@D;2u#n0<1EiN>BAIzY*Cxg`9Tusc8J)00{6GWBUzT%? zA595quWoA(4zL%$D7Ts@dd{{A8Aar>zRD;{X)*XUjHHG5vs>msq)Y_xeNx`Xl+CrT z*Y50SjF^dK zw#cpjGPEL>B?~6vizWTFOHwG8nfGc(k#5D5#be1@IS)aM=6R8N_M+fMXytsV6s}yg z*fq(IV&1*gH~V?cPuKY8f3zJGyoe~C^*%B?YA?8A5lvJLm0YIRnYAy-r=+$gB>Sww$z5X4# z{IsR%n`uaUudVJ(NnGm1ipa!KL6oXR3&O^;drBOM%0eed12>eo6mngg6 zD!oE0@2401aciqSr}U{hr5(JZIRctl#*#>eyw_RRn2{N&GP)91yI9daLVXa%1;Ur# z3*YyvtiagYt2E>Ps*UK9Iy%1CbPcPEc|Itf0o&)xqGyU*U_f1R{uO}l?S^cQCFfS; zLe0T-%+&bqPOkbM$(Z3Ee#zDu1%~tVb0;@555JTOnmyT;g<&*J*zw5$-oRtBhR=XR z#~%!T=E>x0>(p$JkY2u_r@Cgqhbo*JMLf-HnY+v0-42)MXji4x%bUMp(vZIf8iYKz z;)w3NaZ>rRBrJ96_5GXP+;Ywu7G@Zn4w5)6LX9XPrgdcB3NIo~N^X;hf5`6cYRQ5h2x*GpXSE z5T)i7sY=(}a52fQ*pfCvqnfvd8}FuJ(W-NIzvgl?(J-^7xKSd9tW!ErlHWIn!9nqL zow)w^w8$9|`J|gsynfy%DPdOwjVrt?_9dJ1z^64d!-l>*OVjaAQV?{=KKr7OE511` zc-1|CE2b_z0?f#1sJ-p@3wa#E+KP1t6Ika8dp2i<%x&I5o28jiIPh=5$4W~kYDkUP zv(e*)Z`MjP=Km4pmM*99ugn}CC}*DapDR)SW29<%?{xh^Xu{ZTvN=PE+en|(P^1%O z=LZ%p$rM|uD$+wvlVqARjhQSpjfDm)p79{AP8JSjM^P@8tqBEUGNTrEP&S_4+JXGT zB`Zxq-tHDMOR&4^i5TXnW^#9+KWeGtvIW?Ov>wK=A$7{a^Rx!OwcYXqBP@UQGAyna03uQf@;)%7iT zlX^c|R#t&K|HX(WIFV>JRcx8Z{&bVUb38@`cpFS+rq2i?x~I5wE@R@O(F=^TW@BI) zJ!i%G&CY^DYdB97_J%-$s|A{2r1fPXL@+j50A2kZ`HNWWPs>X z{ITEmg|e0_?N2ocmM@b1>ke)(J)+lyFksGL^=iJmII4xlm#W`CsV~Jb?|s>631H3t zv3(RJ$h%)+??1jK`7-gF6ul)uazhvvD9&K5EW>#Cur8UbTQdjr3i4npjI1hq`e4(% zoYhjik&0z>3Nwc$9U^8@c_z)EwSIbh>U6PcYR)8(O=EXV11D48=$BQo)?ec}ra~^p zAEGh?XWO+llIDLv6LC~UDz2u9f+=rA&fbTKsJm1S!Ny7`Y?-#}ZpouiG?i=J4`y>vE{BIS6r@2ICPn~;o zv2x919vj3eH?O#THiL<#U@$0Y^I?%~?`j3{H}>CVZoQ`(!tRD$T2U_}6P892szJPs(rhUhIKR)5e4W|v3@E8wyju=RcRH&;Y3A~Q!^iNE zyNv(L+s$(|jk@Z>3MxJd{{|F889~&AHCk;}*2)9%km3HT)Gqel<<`IYZE>2%18zA` ztki#ts`$W4rR)!5wc(#SAfJHdtfV{T_h3#LZNB1@*aX|O;$mXRd6>IsC zW5Qur)3KAActcq`cHpUEPvt;ltKk3kLE;gn*pX36wY*wC4s<&eJdW$#@-6>+WAtxT zd0!=0WhAgm?#B@O&H51iJ6YJ{}H#v`jv4sR=2q_H7a>; zkx|53OP{~Qj>%+WFr}0DM$?{ER;4GuOKXt;!6fth2Y~HNs;4<4%%8f^D~RRiP|=<` z(LniW^?#+hN*{kO;zuDM*b{`oa~B^U6PG?nKW^N%{;2ETUSW_;x+orh7ziV!7vlRz z1muW@yRuXMYswoHj-?Oi_&NSSY!kUQ5%pBa<8(rK`Pb5E{h6}r@~A~|QONP0YWXI( ze@&1eGS78yt(`(+UyWEEkV6+y?}qpPpuHfN`k?mx#c!YNVrF0Ahk8ToO&2G2qi()V zj|aGhA~e;dQyjxwvkW76o}A0c$?<+drY~tk1@bV@B$nYcTHTR*-q*Df@$g+^zIKu1 zcOTOOd4*fU4F35WB*U*HLcKpq&CxHWqLyqw~JpP3Z3uJfw-y{!uQEU zt~fKb!&?V=?R>KOgEwwg)UY|(z;Oj{b0N2_*X+e>hE^)HLaaK34 zo)E&YTq|Zl(L&|*nJixXuhgQtTd1GZJ!TMjwk|X_$7D`@;NRjDGt{kYIY9e`4k|q;Iq?NSxYQ&}p z@W^IvNxy3s$YMJ=X^90TmW|2G#Kig)5$BLI9iPTnK!>zXg&cQQ=q2CJaJSwzrO4nv z*;@O@DyI{6#`dyG{+My>Z$uPenn-6XghLzhZf)sQP_8YkWh#%-(ZvqM>U!J!k-F`qWV8U%cA96j}7?G-sCEssA1y>Sem~RO;*{XPy-bIS5z{KiS?hpdudFQlnr=TTRLs4s zDhq)dEpy%f*(S$OEFVQeQ;I{fC}eB z^b>{-_qE4oI3sp{)if1AW0#ti5_FcS>ASv|*T}Cp>xhDN+1)6}4`HOTB#ghPVdbaroB*VbelpmVkd%IHyoPeey6nY%3$a zc+_CH5ns&|M@Jg9MrNW&il^xy}qZ!NR zHl{?Z*W}t(3o-cx#Ok5xY~7bswFBHAL3*z8#ieJEjE|rb8TMtl!kP-dy*)wK@g)=Qq$i^9WGhU@E&r=~WraN1!WIikn-M!Y>u> zLY92b|Bk#pMljTPdI4#EaEg0)(yjp{Qsl*9>YSk|k)7~(Dcku~SqTI~^)!}9vtR5_ z6=fb7RZo#d*BG3u!obK84Ao(mh{w5Z$;Q(MMu1YSLNQKD!#qMwX#FxFLPaV@b2QU< zg*`{zJz5>vdXzh?)#YyXb^DaS8^vT0dj1i=x^^0puAMoGorN~^(!Ig~5sU-aP zcOMv0tg80qrEF}2&^bNjT0;kk=F_$$Gfn6cAW&ud+g2u_Je;V0hQ6Y^N3hBJqpZ8@ z?}cJx%$Mo4)x%3!kzRWnPaR-Sou(+@8}RQNOtK)@@>#QACC8nk-slfo$%rvsi;&%n zZWBp_(s5!mC!A-`pQVqQdW6u_9zgT3Rb{>m#3VKE=7N0L&lG|YLq_=E(K$j=<^I7= z`KK?7H}ea5H4YTdib50KDx)>zboQU8H4|Z*6({Jfu##bU%z*I+Hanno9{zcuvP`Lw zg?&_siO~J$%*Mvx_4L-TcPjTECb~4W`kegoaj|!BS^_?$t?E$X0*oEe| z(*fSBv~g`Br)tX`mAE;PxM@NO^SW%y{ZX3p4>sn5wl;*9<%A!iICXus2Rg>uWJh|e z{mBeVMkiMnOtqYDCozudp;^V)#rx(Z%-2WAM0R{85k^R%3wduT4|Y=srsm7A+ z6>Pxyo8BTt^Qt0M`CaXvd1 zIRwjtFON)Wt6@7x-i?JcztUMM{{c0r!rsJJO^VXPdOEnkiQ6hb65GVY9vOVSlztrP z7Tru%=+B_wFu_W8nLmjgO9_U*d0v5$)#BSfaOZ5l_tfU<@U3IHc7gM+*2n%08KcxeyRU}fB^&CAolsq%A&{3x zV(TsPBQerB+P*0uQ@yufEyqf+YaaB!;|*${<9n4=Pv3k-!`z+hYMy8@BE}Ex(qxfe(vBV=)ITMs+r7#9p4@UL7u|E0g^5ay^<0}kl;to2d zIp}y`V)K?3Y#h~e-oxWXQQ&VJ38{jmJE1|Flv<som9aLqv=0bmVlG zV5v0dF|H=FUR#0$Dg0}v1t0U=b>!q`8;yXUMjeaKY|wPkViNj(-hoCe6hR7cRSPR{ zb>lW+N`pJ3p4DD6#3;6}e^%7G3)p!VY7j5ARBkKf2M^Ho*ec6eVkf4Eb+@9`?YIhhPGPj$h|?l z$VuF1spUYtvwJ1?GL<)Z33*q>nmLdu(@3Fre`8a6mgez_yO7IjDZp62!08M)b7QLa zdbfR^$0^7O4OgWhcRN9mS?H~2q9d=W*B9}o4q74;Wf9HzK=x<=tbEk{0C!)Y0-caVwv#13W z)w|-*T6#0E4iSpQ%%QjjV}0pDVS)LYv#k{d>(lVdEWkJ#B?MQRNhT7YlJs~ zd>X1lHs^{j;e9hF{JnyB42RT7_}7H>?C3ZX0A`H*rQ`Tyjzy}R4C0(6=Pp*?IN)(s zw%&EC{T6?!VI7_|q~6Gwpw+@g{IpktJWvh2xF}}CTagzvrLo?!W*!q<6N;|&NR9;s zXja!2&28{NYN=EfkGngdEYSnTG!j8J_mi2vs1e-ETIc%5ujBq%!A9>R;BD4O( z5wg^|=f4o4i)Vu9bNGh+UW-|$!If)VZ@ulest;lp=#&mj!fQHS$KcV3hoaYj9}qW^ zV3$`;@mDny&!!ef&*|n5EE>ei-Nubsy-hkD&zed06}%P*p6D}zR(5LDsq`kfMVPK^ zt>xYI$N1eO)2hTbd5Ky|*vp#)jL`lw;F6rRrawOUP1a@z(Z_oAW?yt@b>I$&qZNeAQAN7%Pq(2Q$Qz7 z)njR#zY2;3xFd2Jj#Z+;`j$$=g4+t*#mY+HNHqoR>|Bz-L!o5}-)rC@^|I=;`d~sr zs3Bt1M03L?I!94WD>pcKGw<;R!sm8%c=t1qT^M(8P~wgN;1c6dYDVGf#?NS^ulw z-bUtpV8nhD)V5-Yp{>N>!Be>SzWyS(w9OnPB_4&wcD?hTmAbAJ$619WK*D$vFhh_`yvu zu!%RMZ{M-L;}L9o5pnD7AfN%2vj0B)rQWzvZ>+L|i9F|wkuXsuV=FD%1S3Y=Y~vX5 zV7x$eju=aMJ0#!--kZjp>R9}|eaYZI{$s`B4Vs&7*WF1QSX#kQk}z|yBQ7--*)X07{9oTUX?!0`KmP!+^ z;Putw)mYDYPMN;+SvFsf-Mb=1beWbPl>LrWfv!#DbM0}oE&!=FE{)&n5?Df#gpPLH zYI=#o(sx@+p|;@qcA?-!&fYcGdQ&ENH1Ok-C~DT=H95OeoRYCxptSC*udPe=`aoqJ zy6v)zKZAloDR%AExv+XMVZ4wR$vsp>12=87cel-#R(sm2N3GnS#25I_$9o+*_FUXp zTitE^Kh6@-#Qbhe0hjZzzXyWJNzEz`}gFGkS&=T0c`Jf}j zr6|A%(1p4j(%6v{Q8(ol+&|qHNT*I#nN0w&$I$}b(muO*=M&VW8zeH6>)l+{c97Lp zP`!?!-sXHP=Jf#YWU)3>%b2}hSr@0UW2t>yi1=$eXZSiy2*`nqC%5#!YzhrQjeJlg zggjEMKk3OWh7NXlx0Sm?h!rvVGZ1ITR`>FwxyLtd9cX9}JXRk5chmu7`4ePG=M2lW zlGB7PSS*HeS!>wFl#$`)k?e*^9CLd;HLt4@Wf$^#n4-MX6CX9mCLqpC5J3+~hDKyB zG2qUASrUsnhVy8{!4c_*Yh*v4qO!)5@k4Dbry_%3nz=IwK0LH|ZA>lf8B&h zLl_hlDv4UZSawL1*Xyxta2Iv91X!;gw{+dB#aB1{wDW%AUoCj%*2kH|m&@2v<6oHl z%~n}!)6F5R|Ao+uMp&w*vj0w zI^fL(1tJv~46G_h92?xzdH984a3D){)k?hh#}7BRSGPORTSHdGQ6t*g#iDcKrKtA& zg^PFgWAReq7e^~LwZc?Y^vc}Hfat;EpB2;YtMeb%)|OY~zaZBl*A5EH=S}U)TE6oV zn=45&LWohySa(2bt#5S?+}Si-`XoURMO=htSR=+-8Z|TVW_(+JO-z<<^qxf<&ZBw8 ztO%Hqt8>o*-n?aykL1K`NIN{H5^|}`FnC1?>0XC#_FOU5kcq{lPzI)04|la^$Z>*_ ziM=2hV{SDo#LI{113ko<`}(5Wk|Y~`QZTeQuIn0DL>N$x{;-hb1A14w#eQ0F?is{F z=Z5!zfROCbAZL@$!16qT-PGjlyt~G`>DS&?V)T_+Uu6}>%3dJX)X%Oxrz7Pv&Dw;M z*5jQxoZz}2f^Y~!tut+*H{c5qJ;r(GKwk;+DHA1rq2PjIqO5IlL!on#u|-s4$J%bi z%EMpr#~C_No}mSd)(Pd1H91|HxfMb5jbt*0T-&JyxYnI;9~G5{yq2psJ@^Iofq}Wi z9ymV-9f1(l>!tAgwl0&#GL<&9}cOewTcPp!CG`7c;T5% zDamLhJ-$gC(M-xdQHF3k85<^jmNzZoaChIBH#m`(k-xZuxmmq+CAA3fT*27BCU9yG zPEypR&Ho|&xS0fa#B0QVXjHiBr}{B#1-9l+lrG(J{YCB7t*;Roua&V;=-kY91T+V3 zOoz0jyCv(t-+)+K`-Z8?DapjNbHX4~8?)Tj5AQR^s+}g>#|R!I-QGDRu!QalP9)sU zX=B&jA|(fA>4cog*4l^{HqK`+ch+w`Pbsq{i~9<$Lq~^;g&>8wuxJK5aMd}M&esUX<(MB9mRpSDJvpt|*pjxBuDdaR$m{I^2T1@?vl z)=t};qT%<5%s{}1#LOR74OD#HkJx1ZHM4)6+GELhSdWd-{0_l5s7unmg%1rS56wK%_FHZQi~zxdI#5c?nRxLF4a_m80?Ry zX(=H3QRR^-UU+yDiP@msJ9RTj{KJ@Ut?c6i=y}mR+`Y;I)|ehap;UqTCZ(<17Z8nI zOp0C5rlLa=3Y-fedFifJ{vVW482?_an(nS;QU_Y3=}bw~Ga0 zm)Yfz31@u6QD8)G>#SyjtHaI~iDw1CUx1PGSgy8}c{r7wwhd`@MDlEZ--c)moXWe8 zE_A-;&b)0>UCl&z7v;Sk$~zI-X@-31;MsGN{Dn{`H%2#n-$ahib7ku9p=9(Gv+Mh!dH~-T?JL% zu|piL^ES8iiSx;;csC$FV398nwMc?i7<>B7{kj^pCvJUL)Qhi^S)<*Se6+H5?{SR0 zw9{FLta{c#ps6(S7}%Ul<#N2nsA)ANs>7>&m5|-1t(-GD1(JJyd1TtRf@;rc9$_M9 z?LBCLrifRJE2xSvg)(KKen%RHpKk@EV0_MgW(7MjpW`v4Gw|)X#e6QnFAs{BM%PkSjmq@J`R6#50GCOic zA(TEodQ#VMqCURNhwIxGf&H}cGU7m6!}c}y@ME!-wrE<}504SdK5bimde>W=Xb^tV z4oi@wegiqCJJ48RM6`ihsCC^gXax#LB-UHBiT22PvZQv1q0vLYP!^u(B?| zimU;eKe1$gP{SSi2CN7@xR;r_R2AVA!ApG!ZY49^g$igZm+v z0vvXGTRV<&cnJSP?Od(59~w28pxXT41?|2+gw<)Q79SlFh6ekGz$aH`5;M$E#+MHG z>#g#A*6zuAnd@MsnAtV3IRymyg~&d_!*`I-;tZrPIkiVx*HOJ8$%k&F^+6lD0ZG`0M_ zHQo(@@mnkbRYUI!OElE&TI@KWF!vY{2h(ZW#52PNoTZ@6Zn`{Eep@K>UA!q^_qRCu zK!8wX`4rV!W((h%sa;n8#PesZGHbAo-0+0acije51ngTrtL z;R_S9SJ(_+YO{i_9lnX~S)ZTwEv^>iHM|I=wd527ZNCk<^>LPpgbHjZyTZ1hBF>c> zKwxM~zwqmu4uNqptIVf;(X>4B7co3Bzz*=$LD*b})?3)&Q?Db_OYrM1Su)PAAr~V` z)j3|jI@0Kk);R+`Zq6XjZ$iz~P_!Pn*o;M!Nj+rMKD>$G<#%Tf1uviy^?4Ym^FlJ` zV6-WsF=*8JZCZ2!d{h$F4)#m!kKOJs%Jxmo#MrM(HN!_dHeFQxF`#{=b*0mcE=@?~ z24L+ij++ewysV3s3&A_+z9oEpQzLGv1KT44fwp^rgn)-LglGF3ZD~b{3x-c`%+j&j z1rrMULuinY*OF63rDxuaAc$X0u~Q}gFrqWQ9@XhpuXbPqM-{=o}SAV!F$E-(omZmTS9V ze4li(RmxWB>u}DKEp39xT9Nv!aINWiZElZf{)CXuFY;u7c92ElriozY#>q`}WkDAv z(m;r@y!9A0i-~SC8uAu=nB}FE^;!1mrQQO7+V6H7x7?b4pW9*#h0*TwWdEwn z9t2+Y4%>hEZ^+8z9|wd_Gk}MZ)R=$12A&Iy3V={4iZCAqCwyrOCa8mzeTEhtCjp3vVY7-r z6BF&B%EY(_a9-8)U#7!$cgQi9ffA=Nq&Gn!`K+;y?mO44<2g$Cj1I?Wqe_l@E7-== zonIRePT8+Xkef9ObULlU#SYT8HXQCv6?|YkdT?Vc9UTx)+3&wq8a2XTnBtt;pB{YOd~JRgwRq1IT%}ocK2c)#IH?+uv?W zogsiZTxK^+W+53|QUla`^zq^E5CTnBC)aWl7OyNGWgd=vjhgWnqc%i4a%WH6MLxrR z`~fyXn%T5e5r_|-GJa_thYuA(`B%_wzWK|kn=3bsj=afOk&p_-?l%g_7e4*RPo7Uz z@$W+Zd?iYZ>j7+JWaEWmv+9W4|F$gLdhlnkGOM*zQ3c*Nl+HOToMEt(4|}}FbLLaP zS!g$vnGzo!306*B%sTEa?Y|$JjqkQ)?`Y<&)dBuX#F}RI|LUy3!$q+8#Y+&hu`T3S z^#kKUc5vwetgDn1@o;R4bV#@3%QeUH#R2a*$c2)#3i7Hv`r(lVU%5JbSHn(tJa}_HwGx z%2&m}W`woDq$4z^Yxcdnn7Os^2qBg3_Gb~eknb@zI7g3$b0?ck-faZs#)dP>~@xE z=?+Bwytbhss5T*w0jBg>eK4Jk?=&hY#p7rPHn{H*#eo< zdFSvEYlx6QY)Oe!SbO(2oDKm2TglVbf4HC0TSUf;y7fr(3i7{;`f=rx`Y-ErJCe;) zql#aImqlG-TqsQL3hzlU<7>WOJCnLCu}c#L))q9AgOC>qoY|Y~!M5cor}O1(W~SSu z9#z@klhX6kguG|obPi&ux|vLCS+OK)=4CoarJ@pN+w(Ec^5)-AunwKrGB&*Q!x{eU zO@*y4dL?howDb?=BtFnIWB#lXlhBM?o}4IfnQ+1XJ3$CG@eW-ZVc3BoyuxysGHUos z8%`P2JNjYI`U!9nA>?ec$`jIovKNtD0YY?hYl0d@pokC!*JD(SUNvR&tfovHR%hmLAfpo_i zv%EH#t8PZtHAAGx+K5c0p0RsI0BZJOMEWGv9dvR>8frrk0gZ$R69RFlNfv7^ZFFi$ zl*i+@?$y@iA||2%n&0Eg*uq1|X5zrw(!DC+Lyq)MZs3St9H>DT4hY$d7l)qAi60K6 z_>V~8E!8;b9NAChc<~s$6_1q4H6dJ;NWTN0T3fw5pFg9teDE`UjkWriz7Zd1!=7N3 zE=|SekG)xWE!OIsLN~s4v@(3=z+QV2Y@Kpd7>>yS}&I zAK;CfZw{~L>-Bm(?)UMHe3k23x>{T^`r-(4dS`CGjMJ^XdM!FIUnL~68$fBJI`phb z%oH~_B8H&tRfQr}YelY|9AR4^>&C1j5{T_yYrN>`@fNG?SD($*Nd5&mM;0of`ix&y zQVGl@tOs!kRtisfw$w|&c2;p7jjUX0FxxE$@y;xzzkFrEsyk|IrGN}&z5#Xodv#!n zrCUcUd-5>yAe2Vm7QYQvDOV4ar99(EV`n=g2UwjI5j_h&b@@eQ@bQ&qZcf34W_CqV z>QWfg7loJLS;m6Fdim9!g@M2#&83`q*I>DN`DFUY&5WGfURD00*7)lwi=8)LVCM4V zP@`FC^u!LNW%PNRA3x3Usojado!)Qm6y{%E#|BDs=)cv>V(_GB?HZCjv)3sky3^VQU zg5$A)OP}Q-u89ir8;i&TuW%U7@Vx_&lYw-L2J>=0xUAL>q}X4M^8%KdLDKwZ_cnnGp-$J!$+V6gmnG9E@+xkofvmY%V#0Km5Bg?s<0Y@8q#h0J(l&J zxA0q`m^0%VqcP;s1#t$bSz%J3SJc)}DY?^IDrP{93nm6JHr_Qce!Vk?N^~YUmASJw zGAw%nf3j-x-$1lr8LAU=Uv2HH$3|Ak? z)^MaKg%V!Rz64WXEk1JjckVvH)`=x<1|-YlaoVq4v;`HbqB{;T`K7^9U{?~<6N4{! zaVoXVz{ubHNK?(!R>Qh}*6#`0*aKtyl@8DRE`V-yTVr^(Wpo9V7q6KolXOnR8a z;M-NeI^D>gd_cWnV=6hz!z7zCn;VZPw*uCy*A6sf+L?}tKk!5ec}${pq^}{fS=7P4 zplXK-8$~=xy(BN9+S$f;*1b|eqSEA>r z%R?Ci-qvfMHG}H86N$P;J>?u^abl3Jb90;J9(r2Cr;fz5zW+3JP7_EZTR?er0qdpg zc}n?Q!6Il5^CTSTE8!wVpC@sn<9P`20Rq8|d~!Suu-`BT@&0D^kL5`|qA5`qZ|Y$9 z`8Y8#35%`XoJW8{%97TioDAAsx!N#T9ukafpO&|eevJeXE0h_btqqsa{WdsHXsI^$ z3(qT`Ewzs{5Ty37-lppEh{As6zv05Msax88 zVc~5#6V#@-74gd{9c2gdXK0ONee02wTbJQC1*|0w0%m-rU+S_8 z$M3)r4lR0QJ?__PQ=UhiRZ$eb7s*;}soM*S3c8{FG6t-NH?>E|3TGMo;We$-*6PcN zA~mH`87SS~$(ix2sSohu z_hqG5&Y0U#PFX>{-3)3wa*j87{j_j*c@lu>Hlx9GYa&=L zovXAn=zb&5V5sUmWIWTf=zYNvU74<;@uqMycmW)-B99pz)zpwSrQKd|2}tnAVa#Z0 zvJ=oTr&+oTIj3FU?EN0deTyo%Fu|U51}EQr5}ek={l$_}_HYH$kodCdU;tC_Urf`(vA!Tm zCE9!&fqBMqDM&K{S z_-WVZ08m<%?md!M(!I3ny*hJBHqy}1(i>+@ z6lU%x^KQwxpvTZha^?E}zzcWQPPODA1ZTHSbQPV)5S_b66S32hA*t0=@7=ZZ8$4iJ zf!379I8@`-oI6_EQ}`^Skh?znBhfwnBDhZq1<9F{8}%FY^@%%Im*cFz7pd~ zJToTP`5h(fzz?U-Iwp(HW%&js+b6uZcfXq1d*$cuO4aMFzj%MJSrusuWjaoPew_PR z2k_%N6wl`vzvb1hbC#BWT>@S4Ls{vE=iTl~eorUnF7bOl8>b6wF z$s#U|;V#s4Y$YHMoe9ki_E?`;z_V)|jVTUuFjY&tRW~5a zw`Pi5(D^VuwR4JKx6z%K$=yQT;LfR%Tcj|@y&)-5^P;+GNclxCX~E|g?ibkAno?@>kKRWRYztGyrhSA{@c%FtG^ytNxF;Ua}x()!kb+8N0}{+1kxpyE;>vjvxO_AxfGC=r~fyc*%E+2aq>_cE^|0M6uD5u1X-fp z#ctzFb(WvbhoEb0Whz-)FgsTxdL21;c2|B%0q!vIxtS_wcl=xd^uPX~z&1i)d#|5w zR*$BT%o0d-71qI7`B}6_X-)7_Y0Jx&!99B-(-h;rbbP7jYqYfqa?Wis9dWo|dlq7S zu2`q`B6^o_oMFg_$;RTyw2B12(A?gAn6}MMGY)S4HcG6MYApf`%lulB;zKzP1WGMC z=>S%ZTOcWeq78aN1|}7w8qeFDO!4(pOD>Yn`0hL~@p&pWKaFZCrdZy)`*wo}kJND|q?i$p# zt*%^=Yg^{@ucg+^&g?}%YzSN8&!Wa!qV(;7VCOda!;Cut#g)4OM!T1Kg9Q)HsP0w#GgoJ26^p$&wUIHx7 z(5MN`%I&;#M}pw)WXil~&M{#?L)A4Dn@IO)BjS|2ayPzVxd||Q@(s} zEU9L7{0a|;O^?zp3~a~xFl)0WMk}2x;{*}O$fmt1w*^}oMpjIMfDvJJM$R22nB-Nh zssgiR92?m!R^z#}@c+MGdCd^y66yqa})-w-b{NPrcUgP|Wn^&1e9TpnvX261bG{J5eI-Wb6`|gevSa*x8%*kvz2XrLsUs10!W?3*^*R_)?i z6|D<$O7c9xB&Yg1ZwoXR9tYiCygW90WrW$QV9nS4u;Y@}B>7iG$rVPDtzTq8P(2b8QPY@xKozj$X)~IKT%3c*PkZD<Y;qSpOrO^}5sC3LnK~9e zl#kv{rh!6q3916{x+-Ot4dsrS$`GKf@f%^uy=}Nm^6DC{10sHMT`Fk@Y(!@jv|L)? z-?(3gsmLAumhq5vQEUT!tpwnnTxv}>j$Gxno4%I;S4)JIo>vKzkvj5b$qcE&s&2HJ z%`RrzjU1+|yGwp291iWNXMR@f0Rp)ujK6E|y^$Ull1+6~D=s36QyUyDs6M$_c{4R- z5Ue~n)$28t6&Xx6z%}0o9LgiGUg+D5^ZosMLtfuy-la+%gu z#S)pdc3YlDEb}|VydO@D@y3?c`gnb@8BMK}>sSvij8Wm}b^FPYU9=giCn70lz8R-? z2txGJ`QH~MBX%V1mSdkHc^s=?re|OHTr5GV4BKO``2Se|tHWcAbPS@3lv#ra%>GFE z*P;t`dy{*;8F)rkR?O}GpBFOoIvv;{`)@MfnyE)<#f+;rmR7sXDig!*i>R1h5yM+S}ndRelTrTmGLLd{Lh`oXU$uPS5hJrr--vpoht$!A8u@bs5trV~QGXo4=e1U&hH+9vQY@UCllkuUq>#k9bMnI;*kFGe~^P zv-y$87!10=O`aTsZ15+z>2lBfg@~HlWMNF>M#k17ouXGqGkKsxbYRsJ^X_<;^}SZ~ zcufX#zOc-HE}Q)w)JVENQa@`);t^2Gf*aja@BK;cB)Xefo@sJJ*o=-R2Ns%*y>;}p zr%l!GsN;TdLIwSEqIeN<(p2MO?jF~@9V8X&)R2u$J01XZE{hi1%K8E{j^d<(mm+rD zEgVjosxEi^;nXp>xUj$4qWVd1D?+w#Nes)dYR(1)XT{-%0Y**Fb}5ck&TML}hK^(^ zIh{+tX$E)Jc)OwF#(p7l+&-1`bcJ%C*7_0Cc%rV?Q6fVl8EDsF4`j37_9_)U0PFRW znQz^&P@O0Y@!q6YRpiMY$OzI{f#YP}_6$zaZ@rdz>k?04k`iU6Sr|=wy{Y!?@o%tO ziCYTE=Wtj)IzO50{qx6PMSpTL8UNXt>D%{-Z!%3A!vA?AXe-9?q{-c z9v|7xdRoiV?)UQLDB|=Jf=O!bJYUio2%scF=QMXb_XMYIt{<(2H2j z`p}sMT|4-NEc)2^P3P)4&*6oleYC9O?8z4lLrtmqI1|h#$8*7c7ke+Zk z!<64b{{XDd2Y0C!M%KO|jHoF;v@>F0cY>yX4*P*E#`%w&g1DU9Y^*q?ggp}%I++Jm ze+|>Vrk|X1Xp*D@*TE`R%cD>=eL>SxrFTF?jHIfThgMDpg!=J+qIG!Hn~;n;5&W4I z`AP9i6v~~aXiOBMgzzczG@GLiEgOl9(_k;DkREyD9x4IFX zl14a{^1ygxqDq!ps5jat0*}+lk1{wdM3{&Y(z7O z+9~X_-hH?fJ1dP$W+>mC$MPhNNC@SJnzoS{Au-&rujp{SHnk0ig7+k(8;_ zTyb^MnvmgZ%x~M>{23X! z`)6V8<;fqICPVZ*EDyP?M-Ui`feAi|nVA%#wU8BC!_sl#sKETDn zoR~gui8MX?M#(RAy`8nQxufq{kK7)n!d8{fo|kN|C9m^LfwkX2u+%!5aYDMh4G5`l~@^b-BiX~>wD=*#ZPgZWT`UlOntt))+#lTZ}4BcYm z)!st&HJU*V1cp#qvrCN_JAPNrfXIEL!H7y=S5YW9C*y`FlP;OmyEG&sRIRhdWgc)n zCBrqyArMks$Z=vA6D`NgNys6lts37)H=zpO_x%Dc?Z}`h-hN91+jN8DO#KHmf)7h8 z)2fNFccAD9NW`Hm{cn~{^0N)S2`te!d0VGuxTR+w#@F>GyFjz{T$YJOBjX%h(y9FZ zt);gqC5L^t-d97gyuu(q4c`%7Z>8b65=IH!x2$^5cyXcdOc< zg7H-yOLlmzPMhgXw2nAu%6|_=r(hmQrXauu-666VY~8zxR>r#=;u{x>Ja82S?kQk7$2~7%baMpQl5Rv^I&43@DK$DG*y=m zV`NkK4QaHglMXV2dXLmaF%mW3$?N?vQ630`#t%DTKtZguA2JxziGkHx7=g_n3}dlx zizCfPR3PKU<)7Lixf66$_Or1r^Se7b81dWgFD9R`*M2zB^@UDr3Qq8X8QHg*k)O?c zw0t}%$ZRVTtB!_I@9M{ys+xc<*e~<_BcK#-6(;>G(l3l?+n^$GGpqb{%NnxYGMD+i14?L50 zg4R>7;-~Hq!`Ia^mnx3n$s(zJ?ZYOwbLS;gEn`l~^LqcR>)df37q%0$C+Th7<-)kn(9~P*h4ZGeML=q7@+5y(SCZ6SCZx=muJv%V`EH20N7w7SFg|0K|ra+0$Hl0B;%XMZqM1E&CIHNUU5=^R5`8C5DlJuHKR(IMGomIV5&&-z?6ZrkvjeqV}zkE6SpWG{!q2UtW zZ}J(d|M@B(yW*8DM5|AWz3Y7=;=x3P-$6r64B zW*YTBJ42a|r*QM8wj{s|d3mnp2N`l-2e+wr-dI<-(v8unj&Eil-yWFd8Hs^HOroHy}O|E>M(~{sAacd7``>IIPD7| zF46=Ake15t5k^+S9WwNftr`As#i}WNupZ|IO`TMXIb06ksn@s39nk22bT z?uAjYp>ZQzzZd80J3pHZph%UQkOjg#W0eE@o%nPxWr6#m$$%1++*(SE<=mff1VACS z$nV3zH7G%UJ&E!tsvuzjkQ7#vJdruuw$7eMG?YjS@6h~uCffn|C_pd)QW2S!17gl1 zVnJp=OEq17Z|UYp+JsU>A3s?Qok3}k;_7Ow{wiiKz(X=mG*R!aA zvq-Q}{Wf^CweTLEQw6T-7my(|5}dz9lJx!`AqoSYZpo0dWq8^aQ@WsTayYSR{3g=X zt2wh7rUH0w{9dck(6b815`vTm8`%*~SR0Od;g7T6pdOUbse5v9fj8;I(7WWzzW`yg zE+q7v`EYHn2E|t0hmpzKl44;;*HuAyjWnOwZ5T|cEq1JIB^6611N7BAtGZCF{47Q{ zyZqoMAlPypkT2SZ*%xVvia;~QDe6H}9kWEteNhBs)(v$=P}Oz4UZyyJ)-qe67Kaf}YBZJ~+N3XcJovE$i-vaG7SO*)} zEZM%Wo)b61ohZRse$lOT0kgm-a(3J!tafYpgx6+;1yMq5k1*&KDKK6?7dnO7o1WQR zI5KHv+HEAigqyXzOa`^p!1&2{9@-CBHFx6|m9J@$iag^-nMeir-&#wF! zv|xDx)oX(l)!skj&8*5tfWo#(A^BQO*o+I$g`Crw-`p`?K`&f{pwwfMz+0q_fpH?X zRb;*g2z1p}oD6Wy?|=7cM1~Ev?JJJ|exP#&J10v^dqR|EFT2`4emqdCJm4gvbxN6I7G+3t-oDFVb%EoHj(*xS5y7 z$5UlfdG~ppszwWx$Up&&phJo!;gp=t<>fd#3NlAzX_Yiv7>tzl)YRH(RR^`a=$zP- zo>)+!9QhfVQWQoY?mo}0G~`Ec)v|lQw!#s!(HUnynJKLl@S!jLP_BZ1kJzAOH85M7 zP}+H-wQ2e6L`f3`?+OsrSP#=-tQ)pdvS{K%ydM~=8rA5&xxs+qxFFSrY*QFTI)b?f#E&#~KjZy-4iEb{G7?{W002LQ^mSyY=h3z{HSdgBU%d#mfyp==7JwzFlMY z23Oj0JFWAG-?1pxZN1HwbC*Wox_|l1ZeFH50HrUy;C~ar&=rmXux-=X?D&8(&GA^s z;W)!cqp@1B_1B$xPu$2FDFlG&rYRdt*$TD>`t|NG*)Z($|MC>hqYtBdb1fBHE`M&B zL$~|6w8dPfr`&!%<;-Zs(x0jqrWC8pmA4=|R+pm(+)9)LVa*FDeG zKExs?E}1%XTilVIMEDjOyxnKTm}q3z{NOjzzGE6a3uFiX_#QowY~G_kXwe^|o7W{+HalpR(>U{yMALjPRkP7D&fnQ$Np{f_LdEqNHP%yb8>ul=I*)4OkG zt4qT$GkaV^n-d>yolbFd!ff$tC)fe{aox0!bU3%vzFo@pYL6HRDmzV8JDUZbbl8Y- zlOl?vYc|wQWZxU*@?$=L>L7cKnjHr|X&K8@4#Gt-)8%`oT0xkcW3>Cwgx>=1H9?&3 z-TVTzFY7f3t;tSnUG0aU_O)DB@q-I5!5d;avSs!H*LTZ6OdG-@FFacfxE6nL2mg&z zwogdtn%kg}{d@HjJvbMwU<0sh<{s-Hzln2h{^`no|+jeG`4zD)ifvxtr0?n(k-lkE`}Y(_&L(oFst1}GyP%81dQ&|gGYd14({|8Uw5hHv8O6N3iU@Cf_=LfaPZ zKJkRCO4SIS&#KzvX>x4un1DseIiC)3X&V*+a{Vfo$RS{1RdTtDkv-YdKMO_&#%qNH z<@8gdb}1a&pc+ZYshz_V$L_byjB+Wo9S->EBB7{B+A(AQw{6384Q=Ki5!9_rjl-~| zk#T+l_B7v&u#reHF4(9WgbQORnK#1S68VLduZX2tmAKp6@0Y|0MGtWYy(Uo;FBfYM zmjBYt`!4V`dp2g{D#VKG8;9T_FHnwdF03H_l=ZBBcX#f9Q^1gLh;RtQcWv1C(6YTD z4hy~4fIC#TfT*`NU@zFv1=@yYU%$3I)tHzzD_W$M+ty)zKg*lYEbtmFX&I~7# z4MA;{j8vS+3AZn0Xvg1qJRrq!eH;RJ7t`9L@UcsgJN*?*RO`mXm5oiw%cBnfAm7{H zfwt_<@#4r>^>f;YeRaBP#wy+wVr0kf4i*}z_Ykcf-OTJeq^OA% zVZX;*{wkLol9Z{64>z)3d8cI_&&rMAfLye{9ZVJ4;?LK>>4^PPhZ{u=J~SI)$#c$L zz|N~u{C9$a@@e1t%(vys_C8DHfuZ>+?4mFl0huIA+OK;3FbG{~@8noLr7Stv;0W~1 zf6tN?_^yhYVtYi2Vh$t63-UVihYUyJ%Ac^;p-F;{p5|f4&?q?|;6vnIC(NSq|6+lV z?TeC*Z3Kv!_yq`vQVd7V6~60p8mms#u8cXwf>XO0q&+;Ls7~aO(l8I;6suX3h1qP$g#+ClXxl^P)Me=#gj+?^VB|>;p2V!K2|R*Y z<_TK{rHlFXP_MUi)6>~#XA~M0$K66FvWMr3zng9P4H!L zLgLV#Gff}(b|qU*JpSE)hQ(4o-?xVSxzGMyzd)Cyz%*mx%J4)L{ZgKHArAp!%mz3L zS!)ib2hE-u#L;1+K@Mm?`tzo@FZLDWx?eCo_17z*M}uq&n?yESx-??ggz!B*-2s}V zVZU%>#{qK>Ik9g7NM*3xv)b}yWD%{ymVT_lC{Im45HnizrI1?VxgF z^(#OrR()wSbRBK$=fd0mml?Ly0_EjS+)G|-zu;Ek!BCt95>x)|2!1_&>ke#NC}Wkd z%j#{y0uS~KN)>N7R%L!@&X3K$5(=nfg1Qgsud#DzDwVvAp%1rJ3Y%Ol$z>jh=1WQS zeUFMt%cX~p`71N8K@Y9&vmG9ovH=`#Td@+r4qr^{8-Kk_3~yQ(AW%{BcbA8^msMYd z1w*V^!D(g5UW$c-4y^>MdNuBO)AduFx-S3m52y(q1?ri#=az&PJDb|M#7^RTJv z_TIx~3(MN2@{mGIRR=s}c!>T3AWXS2{;7FT^$^ zcc!h1-UI6V$cF$<55Uuf&G1d(097BMyr?TZFlZ7~ONN|6o$=;}f_yvf(p6wd3&DKm zc^D^or~gl=o6sr9@2;T#J#2NcZe}<=YX@dqjkMJcK4f|@C{rFYZL9ppsiCrn8CGmi z5;#V45+~`%?(qdCo4#R+7?(^{%ADbq_v`%TVXHHRVjjJqQrj9)=c;!mudZ;h`i^@C zIR5PN08&bMFGf~jfs7+v=(j3?J z%OXSm1Ey8pvN)x5`$cW_L}|imQM}JLiOYx_k8wTJqJ9U4)lUWQ{&sshn4588YEGRf zn*X(-0-sQCbkimN4rTDW7;4!1vZR6$S6&=Fvgj2h|1L?nLB9?lI`6y^wE!N$SxMos z@nWUB6--V)?AbsK5$n<#I{b4_V(8{4cMY%UP;zVP&h|f{(}op*r(T!nMGISlO46t% zo6)#5{#mJt28CSYY1=I&B$rh_*^l)oj3K_LbKjIVZAvu_;DaZRbDl`0Gg{uBn$GI0 zOVL&Z85_gXQF%%0apI1(!MRi9PTZ$UA7dQ<9+X_mqJ#j?aYtu$!M$yMmSdk!jl0wB@0i;DK{xJ`X1cte@J(STTH& z`JV^xuXKOSW_@D0x>DyTx~lYC+C#R2W_GZD?IV|t7uimy{5=ens~g`#vh!Lxd>OU; zdf{g6NMX)Z5;O3W)mRtBqfDLhi_zVSVR%8^o1kWe6P&Svzd3C5p9h%*B?ThUveRXU zk;cZ2!vGw!gcf-0saLppsu&t2UW!88dFJYp>wA#0C)U>P(1WOsA!Y|0aR;~``2{$1 zrSGY)FKc`fm*3_n5*ESdmCnG{&x1{1rM8(47Q*oxfP=(3a@utE@`ZWD#Q51jQ9``r z7^H2*xug>ARTywb!N0@426F>wUv&EgfD^0BRoCqyshqOFhdC!2%o0?|VT7Q-Xr-o7 z{qk&_mvwl^39mtGvtD0mWBqkV=^gQ5X39SVO%9F>-{ERdgMs}8tERX2QG>*iQy6WI z@f|wW2|)$!4-5#b(fs|On-3qzeKxZ4`37#m_g^H$w^@q;URMI+F@kV zfJbEPaqkWI7u}WlsU7!leI(c2H1?O_Nq#L(TDm8$wr@FLh)`Pfn|N^6*70GC9~gcO zbTr6xxNXmkbX^=8jG_*CMdkmF_jA}5DL)g;o~Xl<#UDEw59vjf;(fr-0!~p7MtP|` z456LyT+Do1|0L)7C&6i%ZNB35{Fi{s>I*b*=9{r5N!Zg{2QW*Ar>D6K&moDwQz||PGs58RK+J!f@lKSF-EriQy{?Ud=8wlJ~2D(wGr4E}z| z%OIp&(l(Bog~=?LJLyp6d01z2-)UAkEh;;$T=jfp<@|my|GEWqTJaMokd%2GK!6l| zWF6#vG4p!zYa2&9{-E%P#g5Vfh3b~K$AX99@lioTmg{I}tvNX#t@i@LbMe(YH?dd4{{Fd#Q&ua%ko zasSL*_@s|?WAO*tt>;cYCFe)o%HWFYeS?J$xaDQcIMyXxxm~kqO$@LI-(Px&v1y0& z`W2UlEQKLrk{NcurdUwhqWgt%d(&n9Y8#Yi||b5uAbwD_2dY8fR#< z3b?T8x;0RlX@d)!9{3rziSp{X;Af+yM>>`E>geJn)W?FT!vL1b$04phc7advm7PnzL-vhHJ<=BN0*5dlZ1#ZBT2|3_4Rz*((jGP9 zb9-|B1|7hE(sAgN)FA&v!v}&plYR{VcZkj%y&N}i?G`YwXXTfj;RV%^EKmaBx2v1N z6$QK2bjDs=lGy6a-xq0HIIX4A+ct(T3>1}tM%)ul&hp|_!Uy7)rte06%17n2k$OS4!`M(i31ha_UDD zciw=HIU=VM6oS{w3%?U;V)MK+PjH02B~AJlvxi>|*F5atw|23JfKJ`ZM`Q42%x1^k z;ZH)*ozIG*Qj!AiB#53#R}tmyzWg&G1NQ(Abax-f7MeiG>Knm=K#y1l$w9Mdbk33^2e5oCEQDMwd$Bp0_0$*ogc#Kd&oye=tF zQc6~Tig$7G!j*zLQ5#19)pvl54%U%8BV|OS6o{|WCY5w6`DgjQFOyPT_6BVCjSn62 zgugh91@lLH{QG{|qiL+SE^9OxKU6)gpaLHTJr?Kx-kz_y>u7m!L~=AzBZ|z*X@v^k z;pH_i=W1yA5|-7`lUib#oVrR2dUclW4ZpC_8k%y>$>u@MuTDot#vjML z^uD|Y2bs<+r4?q+ewBm=J?K#Y_5gD{Ba+na(o=xF#*W|US3%G2=dEV@4&5jCzZ%|s zU=!3cJiK_t1(Ykwap`N67JAgj>c5N2DOw^#qp@3@nt_O9-^D|<`P&=kNR8X?gn21{ z5Xrh_;r2GS($QxE{H@IA@46LNn0Lzaql>=2q~XPVP9wgz2}Fkv8wUub+bMr)H(tSB zt!kT0y13PN@4<1l@m{K5zs(+yG4n$3Q7}@mQCeKuzex#RF^4zAShU9<{_*r3)wv=-3uHKe^TM?32z3r8Nf_P>cI20$D;u3)LJ<)6ud$ z`ri(rIajxG%fd^8pqYY?Ik#FDKxHw}fT-0JDQY1l|MqF=nsGY{@KWK_5S`~Qc4==isoLRWcTsvp3}%x6VP@` zj@&1^lV!}jAy^+CWPd?UUpk_H8F#Kn`+*-rD)jH2KB27u*iZ1sW;4%Cku?DU-Wn2` z<ZD7YM>D^MrS&=lWhzSf)i6eZ{^rE& zTA)EJo@qAxs z%Flt@Tq^pHC9CkHQD83i`!~>!+X#wU?o(gs@QS$BDU}q4p2JRLp?%)@T}WzW*gFd~ zDAqscn*3f%GFJq+hV^LCnKs31wo69W>Z|e^9>$t=w0lsE7v}2?B71McWa7ak^7?WT zW-`531?^TIyX?JGWB9R6$#8x#o)8({MmcNBS_Wp#Gi9GT3d^cxk`TaC#rR`|hCRgW zC6^}snv63Qc}Oa{&L)4G_@6o&Gx4?02x`XR zUO}UueCADud-p%`ik!;uDk2o4twbBiroEl~V-R4%4kA)G`Q%w|tWap+5-~KWX{yG? zxu;OuwmuYN<!$LB#fPMsH@*t; z)?VJL8sME_g6+kxU}`+9N5d@*^ZI-pJSFMNP*fx<+Z?|F%?3U<7`6DrA*ZXD$7`ckjJID__Xx`NDa2k*aBL zCFJjo;`M}*(!G)XR!#5;e`vu!6ritW((I9Mt~))&e!`6q0~mX`*{j>?uh~V-ST?{X z%jzv8&Uf#^Eh`KJUWx2nxX$Vnp51SC%<-9`j`eUB|9N5D5HE0g9&h~scV>Ge!TtR` z(jk<3e(Ch5=lm-jn};Uyzy0;e)|W>}((89iQ%j{^{kT69k)TjqI|X$~>R5yeDW8mF zE}9cTewYz%M>Xd&M_^{prZSO$Yuby-O?)XfhsH%YHV+&Zu$+DT!HbRWXC`kwIU`m6 z1Z`_%i=ZLwWYfJLE;bIHQ~H*In-ohvqQ%_ik%138^L_iptZ_(fGKEtdN-#%eD&UJ} zgD>+IS&`zpTUX~y%Tl^}e2mq8*?r<=YlD0J!3RxUH+cj?4|_gXT19a)P|v0w4f0(H zTSEPDW>6jyFmRVVvDqlxAcA6%A6MjO_7#yGw9O0nIx}-D>O@9Ywj@h(7AL z-(g@Ne!o$fMJks0Uc&A5d$6rcAe_9z`(b~o1QQIYxCTIZ6~|FcJ(&@KxX zeoE^NSl-4{G5JK#vhlF8#HuAwUX~%@**#nL&4jTjVEoDLVFC!KNt{A1R_TB0oj@s^ z!;C9GWxy9nL4iREVc+>81AB4If4J43?hI-@UgDgbm2)Y!m+}kPU1Clqi+Q$g`vcU5 z1i!jxsSbQ$)P94o5})2sl5h`ywxRD%q@L{njJr^M(x_hfsHi80!;g99x~l1}WZ&8w z*Ym#I(J_eQ0L>}pkm5pDjyPc?qY?DWX(uLp?_0%Y=BLf<&OdF%O$@OWR%hk-W21Hr zjj_Z`x=osB0Tto6*fDfEpy~Z*7_Y}gkLmF*r1(#K~rRs zW+l?~g@+@2u?XiY`NqksIG6)$SAOVv+xl-t8vEViOLC2g>N?VD=2OYe%McxQ^P5%v zdL7W9`MA?};{*Ji>X&3Msgo0UQ8XAIKk$CwMMa7kQY-o>mO$T zgyJi1Pov=Td8nVm5Ty(D+@=7kUuXWH=BI*Z9;<2ag|MSGzyj5+WQ{xg-Qsr*c_Wl}G!U=t}10I*oF~ z5nAc{a;zOvxOLrdVV(sEsjuzy7%4=aB552CxzwEWxit(lMa(XY*fdlVw+L20o$@-&IX&lbZXMHt4ByUH-Y?ol!7G?5+IHG|O5sZcc0TGvE_oQ}l;rn} zl4UoS`7=Pl9%DsV<&snh3)hGf?hAKwFpGz==uXzBk&ufik6Hlc~Wcxm|!*`6%G6yQ= z=iS2Af2k+flE_2b8w7ilhXQv1%2XtqYBR<+zA{>yAT!B>#$+H$A^=E+~=L4yyWEQ!ueB` zJH3qX1i`W@?ZEkOd^>z%*9QjJxHo zI5W=VG^I}CBo-)cMJX;|ZU|Uek|AnYYOZ(Vl$k3zZYiK5;F6lDfV+T5DlVWPDB8pS z#q)+29J~J* z!_gmM#*AwQnqT8VUV5`9K3j~t@|95wDv%0#2vG+v=fzqKW3oI%yPE<3L{6QFP#bLk0ZZfV9)vPEI0^8r3M5{y8LB;mTK`)Vwzp8%tl42tB~AB^U!oaZY7=Au zaPH(K^vn47@0x`+j=qr^n3nA1>7g=n{?gKXW^7Kcwj)6;?aHCcUznLQj=eGxbkp1B zE{F2G!dy8Ezh_jJ^oo{DJGPZu$yd!Vt;^?MRW+8;or~n1U~r*ez8B%K@G0FTrJte} z9q{(6q_mv3MgJWYP3DjCJ7b4rMq^EtfoDHMq2P??yH-EX zE}zMmvz=FY{NgK<7982zzqq&!1(TUvaL7F-6qmA7nis6c7kr!V%0A>xz$PlE&Mxss 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¥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

{iG9%30W3}R}-i&Qin=9*cYYi$z2RP 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

3Ql?kLRb@yL>fj{E>=@fmFI-x=h{j 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

&g{iT@2vIbZKscB)Xd16 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%0A(H3{K@ehUzoD7lM(C*f#Ssj`maC zJ6)c{i{@)riO9h!be3zHwlGKxgy6S=YMFG+pMN*K+`YwH%HAUae;BZJ_y5L*1)+@N`c#sh|P~r z&_}G#4@X&YpG~a?Wvro2d$lp!VFZY;!x@F3TNi2-6G?~MxOM)Uo>OsfMpqFyz(#v2 zb6txVs({DPBu9vVU)Gj8#GSjvLjILgC1>Q^twOHuaS>I7?HjkViM4mFGL~C;_x3E6mt!`p2Z8m%E zPoOzwr`RdL2&DQZG7Qq%LBv>N9fVWr!H%^Ip0LipH7=jwGj#06X<~Nn8bN*~gxz|V zRMoq08CS1A7DtS9&?^VgAWb>t-mIP?O%BL67ekUyUNQ_C<^P(`@ml5I z^gIlpYJ2oM^^f|2<$%Mx_cWKL*M80BM!uSWYv}5IkMZHF^-y7O7=0OXIMsL{&Ua>4=yPivVr4B{h-iCI+-nG3h zizZYyN6hcPj6l&Yh&>#PJv;DRgI#pk8Hjf0)|~h=u(vZ8jYzOBo~iI|i@Q=!zkrL8 z-tlR+hHwUEzadecL$0DiEG*JoYaJ{2x#K~LINd*$^XS077+K)-xSjZL!sx* zuUcsprP0(O-@!~yd7M`D=ewvX$S$�vkFO)LGGgj&Z8LXc4s)3mn8!hnMP9i3iH? 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 $Ad;RAx8j`~) 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
(aK(#O6k{F)ZvRJsO98NX)n+i9 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%0A0xe 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