From eddc894896febfa113d721f3b4de49cfc50e4ce1 Mon Sep 17 00:00:00 2001 From: Ruturaj Mohite Date: Mon, 5 Dec 2022 22:33:41 +0530 Subject: [PATCH 1/3] Add meshmodel support Signed-off-by: Ruturaj Mohite --- build/config.go | 17 +++++++ go.mod | 17 ++++++- go.sum | 107 ++++++++++++++++++++++++++++++++++++++-- main.go | 19 +++++-- traefik/oam/register.go | 63 +++++++++++++++++++++-- 5 files changed, 208 insertions(+), 15 deletions(-) diff --git a/build/config.go b/build/config.go index 6dddb5d..bb6944a 100644 --- a/build/config.go +++ b/build/config.go @@ -17,9 +17,25 @@ var DefaultVersion string var DefaultURL string var DefaultGenerationMethod string var WorkloadPath string +var MeshModelPath string var AllVersions []string var CRDNames []string +var meshmodelmetadata = map[string]interface{}{ + "Primary Color": "#9D0FB0", + "Secondary Color": "#e281f0", + "Shape": "circle", + "Logo URL": "", + "SVG_Color": "", + "SVG_White": "", +} + +var MeshModelConfig = adapter.MeshModelConfig{ //Move to build/config.go + Category: "Orchestration & Management", + SubCategory: "Service Mesh", + Metadata: meshmodelmetadata, +} + // NewConfig creates the configuration for creating components func NewConfig(version string) manifests.Config { return manifests.Config{ @@ -41,6 +57,7 @@ func NewConfig(version string) manifests.Config { func init() { wd, _ := os.Getwd() WorkloadPath = filepath.Join(wd, "templates", "oam", "workloads") + MeshModelPath = filepath.Join(wd, "templates", "meshmodel", "components") AllVersions, _ = utils.GetLatestReleaseTagsSorted("traefik", "mesh") if len(AllVersions) == 0 { return diff --git a/go.mod b/go.mod index 7b8baec..6c09493 100644 --- a/go.mod +++ b/go.mod @@ -12,8 +12,8 @@ replace ( require ( github.com/google/uuid v1.3.0 - github.com/layer5io/meshery-adapter-library v0.6.0 - github.com/layer5io/meshkit v0.6.7 + github.com/layer5io/meshery-adapter-library v0.6.3 + github.com/layer5io/meshkit v0.6.11 github.com/layer5io/service-mesh-performance v0.3.4 gopkg.in/yaml.v2 v2.4.0 ) @@ -80,7 +80,17 @@ require ( github.com/huandu/xstrings v1.3.2 // indirect github.com/imdario/mergo v0.3.12 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/jackc/chunkreader/v2 v2.0.1 // indirect + github.com/jackc/pgconn v1.13.0 // indirect + github.com/jackc/pgio v1.0.0 // indirect + github.com/jackc/pgpassfile v1.0.0 // indirect + github.com/jackc/pgproto3/v2 v2.3.1 // indirect + github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b // indirect + github.com/jackc/pgtype v1.12.0 // indirect + github.com/jackc/pgx/v4 v4.17.2 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect + github.com/jinzhu/inflection v1.0.0 // indirect + github.com/jinzhu/now v1.1.4 // indirect github.com/jmoiron/sqlx v1.3.5 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect @@ -96,6 +106,7 @@ require ( github.com/mattn/go-colorable v0.1.12 // indirect github.com/mattn/go-isatty v0.0.14 // indirect github.com/mattn/go-runewidth v0.0.9 // indirect + github.com/mattn/go-sqlite3 v1.14.9 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -160,6 +171,8 @@ require ( gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect + gorm.io/driver/postgres v1.3.10 // indirect + gorm.io/driver/sqlite v1.3.1 // indirect gorm.io/gorm v1.23.7 // indirect helm.sh/helm/v3 v3.9.4 // indirect k8s.io/api v0.25.1 // indirect diff --git a/go.sum b/go.sum index b266b83..6c940ca 100644 --- a/go.sum +++ b/go.sum @@ -157,6 +157,7 @@ github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= +github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/cockroachdb/apd/v2 v2.0.1 h1:y1Rh3tEU89D+7Tgbw+lp52T6p/GJLpDmNvr10UWqLTE= github.com/cockroachdb/apd/v2 v2.0.1/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= @@ -172,6 +173,7 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= @@ -353,6 +355,8 @@ github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godror/godror v0.24.2/go.mod h1:wZv/9vPiUib6tkoDl+AZ/QLf5YZgMravZ7jxH2eQWAE= +github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= +github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= @@ -516,9 +520,57 @@ github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= +github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= +github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= +github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= +github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9qN5YIfX0fl88Ehu4XC3keFuOJJk9pcnA= +github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE= +github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s= +github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= +github.com/jackc/pgconn v1.9.0/go.mod h1:YctiPyvzfU11JFxoXokUOOKQXQmDMoJL9vJzHH8/2JY= +github.com/jackc/pgconn v1.9.1-0.20210724152538-d89c8390a530/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= +github.com/jackc/pgconn v1.13.0 h1:3L1XMNV2Zvca/8BYhzcRFS70Lr0WlDg16Di6SFGAbys= +github.com/jackc/pgconn v1.13.0/go.mod h1:AnowpAqO4CMIIJNZl2VJp+KrkAZciAkhEl0W0JIobpI= +github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= +github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= +github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= +github.com/jackc/pgmock v0.0.0-20201204152224-4fe30f7445fd/go.mod h1:hrBW0Enj2AZTNpt/7Y5rr2xe/9Mn757Wtb2xeBzPv2c= +github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65 h1:DadwsjnMwFjfWc9y5Wi/+Zz7xoE5ALHsRQlOctkOiHc= +github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65/go.mod h1:5R2h2EEX+qri8jOWMbJCtaPWkrrNc7OHwsp2TCqp7ak= +github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= +github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= +github.com/jackc/pgproto3 v1.1.0/go.mod h1:eR5FA3leWg7p9aeAqi37XOTgTIbkABlvcPB3E5rlc78= +github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod h1:bhq50y+xrl9n5mRYyCBFKkpRVTLYJVWeCc+mEAI3yXA= +github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg= +github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= +github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= +github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgproto3/v2 v2.1.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgproto3/v2 v2.3.1 h1:nwj7qwf0S+Q7ISFfBndqeLwSwxs+4DPsbRFjECT1Y4Y= +github.com/jackc/pgproto3/v2 v2.3.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b h1:C8S2+VttkHFdOOCXJe+YGfa4vHYwlt4Zx+IVXQ97jYg= +github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= +github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg= +github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= +github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= +github.com/jackc/pgtype v1.8.1-0.20210724151600-32e20a603178/go.mod h1:C516IlIV9NKqfsMCXTdChteoXmwgUceqaLfjg2e3NlM= +github.com/jackc/pgtype v1.12.0 h1:Dlq8Qvcch7kiehm8wPGIW0W3KsCCHJnRacKW0UM8n5w= +github.com/jackc/pgtype v1.12.0/go.mod h1:LUMuVrfsFfdKGLw+AFFVv6KtHOFMwRgDDzBt76IqCA4= +github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= +github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= +github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= +github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= +github.com/jackc/pgx/v4 v4.17.2 h1:0Ut0rpeKwvIVbMQ1KbMBU4h6wxehBI535LK6Flheh8E= +github.com/jackc/pgx/v4 v4.17.2/go.mod h1:lcxIZN44yMIrWI78a5CpucdD14hX0SBDbNRvjDBItsw= +github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v1.3.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= +github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.4 h1:tHnRBy1i5F2Dh8BAFxqFzxKqqvezXrL2OW1TnX+Mlas= github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= @@ -564,6 +616,7 @@ github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= +github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= @@ -574,15 +627,18 @@ github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6Fm github.com/layer5io/kuttl v0.4.1-0.20200723152044-916f10574334/go.mod h1:UmrVd7x+bNVKrpmKgTtfRiTKHZeNPcMjQproJ0vGwhE= github.com/layer5io/learn-layer5/smi-conformance v0.0.0-20210317075357-06b4f88b3e34 h1:QaViadDOBCMDUwYx78kfRvHMkzRVnh/GOhm3s2gxoP4= github.com/layer5io/learn-layer5/smi-conformance v0.0.0-20210317075357-06b4f88b3e34/go.mod h1:BQPLwdJt7v7y0fXIejI4whR9zMyX07Wjt5xrbgEmHLw= -github.com/layer5io/meshery-adapter-library v0.6.0 h1:Tg3/e7qqVDOWtj1ZHEq8/dvQ/MG7Ebg5Q3dS6qvA0Is= -github.com/layer5io/meshery-adapter-library v0.6.0/go.mod h1:uEAy+N9/50nnmH3kdTU+J1ZaKAn5ajL4hSHyQYHeasM= -github.com/layer5io/meshkit v0.6.7 h1:VtRkyxpSSwe4lwaGwKYhmVGm1Qf8Tz2NWcHFDUqtkYk= -github.com/layer5io/meshkit v0.6.7/go.mod h1:9ZXmiP0dxRCNlVYgchrOnfFcNrdHVXuayiuN8RRTQ68= +github.com/layer5io/meshery-adapter-library v0.6.3 h1:5tsbgrB1q84X2rM1TsRVe3pSBZ8kztjo4lPsHuPBe/Y= +github.com/layer5io/meshery-adapter-library v0.6.3/go.mod h1:x9/295iLiWab88uOwjgyZbJTX8aqkxfUlVZhqQKabew= +github.com/layer5io/meshkit v0.6.11 h1:VS2k34BALzYzHbsikyqii7J/v9bDKC4QdfHjeBgocnU= +github.com/layer5io/meshkit v0.6.11/go.mod h1:9ZXmiP0dxRCNlVYgchrOnfFcNrdHVXuayiuN8RRTQ68= github.com/layer5io/service-mesh-performance v0.3.2-0.20210122142912-a94e0658b021/go.mod h1:W153amv8aHAeIWxO7b7d7Vibt9RhaEVh4Uh+RG+BumQ= github.com/layer5io/service-mesh-performance v0.3.4 h1:aw/elsx0wkry7SyiQRIj31wW7TPCP4YfhINdNOLXVg8= github.com/layer5io/service-mesh-performance v0.3.4/go.mod h1:W153amv8aHAeIWxO7b7d7Vibt9RhaEVh4Uh+RG+BumQ= +github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.10.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.6 h1:jbk+ZieJ0D7EVGJYpL9QTz7/YW6UHbmdnZWYyK5cdBs= github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= @@ -608,13 +664,17 @@ github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kN github.com/matryer/is v1.2.0 h1:92UTHpy8CDwaJ08GqLDzhhuixiBUUD1p3AU6PHddz4A= github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= @@ -627,6 +687,7 @@ github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v1.14.9 h1:10HX2Td0ocZpYEjhilsuo6WWtUqttj2Kb0KtD86/KYA= +github.com/mattn/go-sqlite3 v1.14.9/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= @@ -769,6 +830,9 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= +github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= +github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= github.com/rubenv/sql-migrate v1.1.1 h1:haR5Hn8hbW9/SpAICrXoZqXnywS7Q5WijwkQENPeNWY= github.com/rubenv/sql-migrate v1.1.1/go.mod h1:/7TZymwxN8VWumcIxw1jjHEcR1djpdkMHQPT4FWdnbQ= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= @@ -776,10 +840,12 @@ github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= @@ -824,8 +890,9 @@ github.com/spf13/viper v1.11.0/go.mod h1:djo0X/bA5+tYVoCn+C7cAYJGcVn/qYLFTG8gdUs github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -835,6 +902,7 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/thoas/go-funk v0.6.0/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q= @@ -866,6 +934,7 @@ github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43 h1:+lm10QQTNSBd8DVTNGHx7o/IKu9HYDvLMffDhbyLccI= github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50 h1:hlE8//ciYMztlGpl/VA+Zm1AcTPHYkHJPbHqE6WJUXE= github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f h1:ERexzlUfuTvpE74urLSbIQW0Z/6hF9t8U4NsJLaioAY= +github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= github.com/ziutek/mymysql v1.5.4 h1:GB0qdRGsTwQSBVYuVShFBKaXSnSnYYC2d9knnE1LHFs= github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -898,10 +967,17 @@ go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 h1:+FNtrFTmVw0YZGpBGX56XDee33 go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= +go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -911,6 +987,7 @@ golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -920,8 +997,11 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1013,6 +1093,7 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -1066,6 +1147,7 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1075,6 +1157,7 @@ golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1143,6 +1226,7 @@ golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1176,6 +1260,7 @@ golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= @@ -1185,10 +1270,13 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191025023517-2077df36852e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1197,6 +1285,7 @@ golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1229,6 +1318,8 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= +golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1412,6 +1503,7 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EV gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= @@ -1438,6 +1530,11 @@ gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gorm.io/driver/postgres v1.3.10 h1:Fsd+pQpFMGlGxxVMUPJhNo8gG8B1lKtk8QQ4/VZZAJw= +gorm.io/driver/postgres v1.3.10/go.mod h1:whNfh5WhhHs96honoLjBAMwJGYEuA3m1hvgUbNXhPCw= +gorm.io/driver/sqlite v1.3.1 h1:bwfE+zTEWklBYoEodIOIBwuWHpnx52Z9zJFW5F33WLk= +gorm.io/driver/sqlite v1.3.1/go.mod h1:wJx0hJspfycZ6myN38x1O/AqLtNS6c5o9TndewFbELg= +gorm.io/gorm v1.23.1/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.7 h1:ww+9Mu5WwHKDSOQZFC4ipu/sgpKMr9EtrJ0uwBqNtB0= gorm.io/gorm v1.23.7/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= diff --git a/main.go b/main.go index 8c11fc1..ff71e79 100644 --- a/main.go +++ b/main.go @@ -22,6 +22,7 @@ import ( "strings" "time" + "github.com/google/uuid" "github.com/layer5io/meshery-traefik-mesh/traefik" "github.com/layer5io/meshery-traefik-mesh/traefik/oam" "github.com/layer5io/meshkit/logger" @@ -39,6 +40,7 @@ var ( serviceName = "traefik-mesh-adapter" version = "edge" gitsha = "none" + instanceID = uuid.NewString() ) func init() { @@ -160,6 +162,11 @@ func registerCapabilities(port string, log logger.Handler) { if err := oam.RegisterTraits(mesheryServerAddress(), serviceAddress()+":"+port); err != nil { log.Info(err.Error()) } + + // Register meshmodel components + if err := oam.RegisterMeshModelComponents(instanceID, mesheryServerAddress(), serviceAddress(), port); err != nil { + log.Error(err) + } } func registerDynamicCapabilities(port string, log logger.Handler) { registerWorkloads(port, log) @@ -195,11 +202,13 @@ func registerWorkloads(port string, log logger.Handler) { crdurl := url + crd log.Info("Registering ", crdurl) if err := adapter.CreateComponents(adapter.StaticCompConfig{ - URL: crdurl, - Method: gm, - Path: build.WorkloadPath, - DirName: version, - Config: build.NewConfig(version), + URL: crdurl, + Method: gm, + OAMPath: build.WorkloadPath, + MeshModelPath: build.MeshModelPath, + MeshModelConfig: build.MeshModelConfig, + DirName: version, + Config: build.NewConfig(version), }); err != nil { log.Info(err.Error()) return diff --git a/traefik/oam/register.go b/traefik/oam/register.go index 7848e6e..504d689 100644 --- a/traefik/oam/register.go +++ b/traefik/oam/register.go @@ -4,22 +4,27 @@ import ( "fmt" "os" "path/filepath" + "strconv" "strings" + "sync" "github.com/layer5io/meshery-adapter-library/adapter" "github.com/layer5io/meshery-traefik-mesh/internal/config" + "github.com/layer5io/meshkit/models/meshmodel/core/types" ) var ( basePath, _ = os.Getwd() //WorkloadPath will be used by both static and component generation - WorkloadPath = filepath.Join(basePath, "templates", "oam", "workloads") - traitPath = filepath.Join(basePath, "templates", "oam", "traits") - pathSets = []schemaDefinitionPathSet{} + WorkloadPath = filepath.Join(basePath, "templates", "oam", "workloads") + MeshmodelComponents = filepath.Join(basePath, "templates", "meshmodel", "components") + traitPath = filepath.Join(basePath, "templates", "oam", "traits") + pathSets = []schemaDefinitionPathSet{} ) // AvailableVersions denote the component versions available statically var AvailableVersions = map[string]bool{} +var availableVersionGlobalMutex sync.Mutex type schemaDefinitionPathSet struct { oamDefinitionPath string @@ -27,6 +32,31 @@ type schemaDefinitionPathSet struct { name string } +type meshmodelDefinitionPathSet struct { + meshmodelDefinitionPath string +} + +func RegisterMeshModelComponents(uuid, runtime, host, port string) error { + meshmodelRDP := []adapter.MeshModelRegistrantDefinitionPath{} + pathSets, err := loadMeshmodelComponents(MeshmodelComponents) + if err != nil { + return err + } + portint, _ := strconv.Atoi(port) + for _, pathSet := range pathSets { + meshmodelRDP = append(meshmodelRDP, adapter.MeshModelRegistrantDefinitionPath{ + EntityDefintionPath: pathSet.meshmodelDefinitionPath, + Host: host, + Port: portint, + Type: types.ComponentDefinition, + }) + } + + return adapter. + NewMeshModelRegistrant(meshmodelRDP, fmt.Sprintf("%s/api/meshmodel/components/register", runtime)). + Register(uuid) +} + // RegisterWorkloads will register all of the workload definitions // present in the path oam/workloads // @@ -86,6 +116,31 @@ func RegisterTraits(runtime, host string) error { Register() } +func loadMeshmodelComponents(basepath string) ([]meshmodelDefinitionPathSet, error) { + res := []meshmodelDefinitionPathSet{} + if err := filepath.Walk(basepath, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + + if info.IsDir() { + return nil + } + + res = append(res, meshmodelDefinitionPathSet{ + meshmodelDefinitionPath: path, + }) + availableVersionGlobalMutex.Lock() + AvailableVersions[filepath.Base(filepath.Dir(path))] = true // Getting available versions already existing on file system + availableVersionGlobalMutex.Unlock() + return nil + }); err != nil { + return nil, err + } + + return res, nil +} + func load(basePath string) ([]schemaDefinitionPathSet, error) { res := []schemaDefinitionPathSet{} @@ -108,7 +163,9 @@ func load(basePath string) ([]schemaDefinitionPathSet, error) { jsonSchemaPath: fmt.Sprintf("%s.meshery.layer5io.schema.json", nameWithPath), name: filepath.Base(nameWithPath), }) + availableVersionGlobalMutex.Lock() AvailableVersions[filepath.Base(filepath.Dir(path))] = true + availableVersionGlobalMutex.Unlock() } return nil From 90354014102d68cd37c04d70871d206879c7d5dc Mon Sep 17 00:00:00 2001 From: Ruturaj Mohite Date: Mon, 5 Dec 2022 22:43:21 +0530 Subject: [PATCH 2/3] Add meshmodel components Signed-off-by: Ruturaj Mohite --- ...outegroup.meshery.layer5.io_meshmodel.json | 1 + .../tcproute.meshery.layer5.io_meshmodel.json | 1 + .../v1.4.5/traefikmesh_meshmodel.json | 1 + ...fficsplit.meshery.layer5.io_meshmodel.json | 1 + ...fictarget.meshery.layer5.io_meshmodel.json | 1 + ...outegroup.meshery.layer5.io_meshmodel.json | 1 + .../tcproute.meshery.layer5.io_meshmodel.json | 1 + .../v1.4.7/traefikmesh_meshmodel.json | 1 + ...fficsplit.meshery.layer5.io_meshmodel.json | 1 + ...fictarget.meshery.layer5.io_meshmodel.json | 1 + ...outegroup.meshery.layer5.io_meshmodel.json | 1 + .../tcproute.meshery.layer5.io_meshmodel.json | 1 + .../v1.4.8/traefikmesh_meshmodel.json | 24 +++++++++++++++++++ ...fficsplit.meshery.layer5.io_meshmodel.json | 1 + ...fictarget.meshery.layer5.io_meshmodel.json | 1 + 15 files changed, 38 insertions(+) create mode 100644 templates/meshmodel/components/v1.4.5/httproutegroup.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.4.5/tcproute.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.4.5/traefikmesh_meshmodel.json create mode 100644 templates/meshmodel/components/v1.4.5/trafficsplit.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.4.5/traffictarget.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.4.7/httproutegroup.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.4.7/tcproute.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.4.7/traefikmesh_meshmodel.json create mode 100644 templates/meshmodel/components/v1.4.7/trafficsplit.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.4.7/traffictarget.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.4.8/httproutegroup.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.4.8/tcproute.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.4.8/traefikmesh_meshmodel.json create mode 100644 templates/meshmodel/components/v1.4.8/trafficsplit.meshery.layer5.io_meshmodel.json create mode 100644 templates/meshmodel/components/v1.4.8/traffictarget.meshery.layer5.io_meshmodel.json diff --git a/templates/meshmodel/components/v1.4.5/httproutegroup.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.4.5/httproutegroup.meshery.layer5.io_meshmodel.json new file mode 100644 index 0000000..ec7ab1b --- /dev/null +++ b/templates/meshmodel/components/v1.4.5/httproutegroup.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"HTTPRouteGroup","apiVersion":"specs.smi-spec.io/v1alpha4","display-name":"HTTP Route Group","format":"JSON","metadata":{"Logo URL":"","Primary Color":"#9D0FB0","SVG_Color":"","SVG_White":"\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath d=\"m11.54 6.143.046.025 3.928 2.226a.878.878 0 0 0 .865 0l3.896-2.202a1.315 1.315 0 0 1 1.792.482 1.336 1.336 0 0 1-.45 1.808l-.045.027-2.249 1.273a.442.442 0 0 0-.224.386.446.446 0 0 0 .224.386l6.072 3.442a.875.875 0 0 0 .865 0l3.756-2.129a1.315 1.315 0 0 1 1.796.478 1.335 1.335 0 0 1-.453 1.812l-.045.027-2.115 1.196a.442.442 0 0 0-.164.61c.04.067.096.123.164.162l2.125 1.204a1.329 1.329 0 0 1 .518 1.79 1.316 1.316 0 0 1-1.771.551l-.046-.025-3.766-2.135a.877.877 0 0 0-.865 0l-6.14 3.48a.441.441 0 0 0-.164.61.44.44 0 0 0 .164.161l2.537 1.438a1.336 1.336 0 0 1 .51 1.785 1.318 1.318 0 0 1-1.763.556l-.046-.025-4.177-2.369a.878.878 0 0 0-.865 0l-4.215 2.392a1.315 1.315 0 0 1-1.79-.48 1.335 1.335 0 0 1 .447-1.81l.045-.026 2.572-1.46a.44.44 0 0 0 .167-.604.432.432 0 0 0-.167-.168l-6.084-3.448a.878.878 0 0 0-.866 0l-3.582 2.027a1.316 1.316 0 0 1-1.794-.48 1.336 1.336 0 0 1 .453-1.81l.045-.027 1.937-1.096a.44.44 0 0 0 .225-.386.444.444 0 0 0-.225-.386L.684 14.314a1.336 1.336 0 0 1-.51-1.785 1.315 1.315 0 0 1 1.762-.556l.047.025 3.579 2.029a.876.876 0 0 0 .864 0l6.143-3.476a.442.442 0 0 0 .225-.386.444.444 0 0 0-.225-.386l-2.281-1.295a1.336 1.336 0 0 1-.51-1.785c.164-.305.44-.534.769-.638.329-.104.685-.074.993.083v-.001Zm3.973 5.793-6.144 3.476a.442.442 0 0 0-.165.61c.04.068.096.124.165.163l6.08 3.446a.876.876 0 0 0 .866 0l6.138-3.48a.442.442 0 0 0 .164-.609.443.443 0 0 0-.164-.162l-6.076-3.444a.877.877 0 0 0-.865 0Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003cdefs\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"#fff\" d=\"M0 0h32v32H0z\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003c/svg\u003e","Secondary Color":"#e281f0","Shape":"circle"},"model":{"name":"TRAEFIK_MESH","version":"v1.4.5","display-name":"TRAEFIK_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"matches\": {\n \"description\": \"Match conditions of this route group.\",\n \"items\": {\n \"properties\": {\n \"headers\": {\n \"description\": \"Header match conditions of this route.\",\n \"items\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Header match condition of this route.\",\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"methods\": {\n \"description\": \"The HTTP methods of this HTTP route.\",\n \"items\": {\n \"description\": \"The HTTP method of this HTTP route.\",\n \"enum\": [\n \"*\",\n \"GET\",\n \"HEAD\",\n \"PUT\",\n \"POST\",\n \"DELETE\",\n \"CONNECT\",\n \"OPTIONS\",\n \"TRACE\",\n \"PATCH\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the HTTP route.\",\n \"type\": \"string\"\n },\n \"pathRegex\": {\n \"description\": \"URI path regex of the HTTP route.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"matches\"\n ],\n \"title\": \"HTTP Route Group\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.4.5/tcproute.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.4.5/tcproute.meshery.layer5.io_meshmodel.json new file mode 100644 index 0000000..529a819 --- /dev/null +++ b/templates/meshmodel/components/v1.4.5/tcproute.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"TCPRoute","apiVersion":"specs.smi-spec.io/v1alpha4","display-name":"TCP Route","format":"JSON","metadata":{"Logo URL":"","Primary Color":"#9D0FB0","SVG_Color":"","SVG_White":"\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath d=\"m11.54 6.143.046.025 3.928 2.226a.878.878 0 0 0 .865 0l3.896-2.202a1.315 1.315 0 0 1 1.792.482 1.336 1.336 0 0 1-.45 1.808l-.045.027-2.249 1.273a.442.442 0 0 0-.224.386.446.446 0 0 0 .224.386l6.072 3.442a.875.875 0 0 0 .865 0l3.756-2.129a1.315 1.315 0 0 1 1.796.478 1.335 1.335 0 0 1-.453 1.812l-.045.027-2.115 1.196a.442.442 0 0 0-.164.61c.04.067.096.123.164.162l2.125 1.204a1.329 1.329 0 0 1 .518 1.79 1.316 1.316 0 0 1-1.771.551l-.046-.025-3.766-2.135a.877.877 0 0 0-.865 0l-6.14 3.48a.441.441 0 0 0-.164.61.44.44 0 0 0 .164.161l2.537 1.438a1.336 1.336 0 0 1 .51 1.785 1.318 1.318 0 0 1-1.763.556l-.046-.025-4.177-2.369a.878.878 0 0 0-.865 0l-4.215 2.392a1.315 1.315 0 0 1-1.79-.48 1.335 1.335 0 0 1 .447-1.81l.045-.026 2.572-1.46a.44.44 0 0 0 .167-.604.432.432 0 0 0-.167-.168l-6.084-3.448a.878.878 0 0 0-.866 0l-3.582 2.027a1.316 1.316 0 0 1-1.794-.48 1.336 1.336 0 0 1 .453-1.81l.045-.027 1.937-1.096a.44.44 0 0 0 .225-.386.444.444 0 0 0-.225-.386L.684 14.314a1.336 1.336 0 0 1-.51-1.785 1.315 1.315 0 0 1 1.762-.556l.047.025 3.579 2.029a.876.876 0 0 0 .864 0l6.143-3.476a.442.442 0 0 0 .225-.386.444.444 0 0 0-.225-.386l-2.281-1.295a1.336 1.336 0 0 1-.51-1.785c.164-.305.44-.534.769-.638.329-.104.685-.074.993.083v-.001Zm3.973 5.793-6.144 3.476a.442.442 0 0 0-.165.61c.04.068.096.124.165.163l6.08 3.446a.876.876 0 0 0 .866 0l6.138-3.48a.442.442 0 0 0 .164-.609.443.443 0 0 0-.164-.162l-6.076-3.444a.877.877 0 0 0-.865 0Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003cdefs\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"#fff\" d=\"M0 0h32v32H0z\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003c/svg\u003e","Secondary Color":"#e281f0","Shape":"circle"},"model":{"name":"TRAEFIK_MESH","version":"v1.4.5","display-name":"TRAEFIK_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"matches\": {\n \"description\": \"Match conditions of this route.\",\n \"properties\": {\n \"ports\": {\n \"description\": \"Port numbers to match TCP traffic.\",\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"ports\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"matches\"\n ],\n \"title\": \"TCP Route\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.4.5/traefikmesh_meshmodel.json b/templates/meshmodel/components/v1.4.5/traefikmesh_meshmodel.json new file mode 100644 index 0000000..eb0899d --- /dev/null +++ b/templates/meshmodel/components/v1.4.5/traefikmesh_meshmodel.json @@ -0,0 +1 @@ +{"kind":"TraefikMesh","apiVersion":"core.meshmodel.dev/v1alpha1","display-name":"Traefik Mesh","format":"JSON","metadata":{"Logo URL":"","Primary Color":"#9D0FB0","SVG_Color":"","SVG_White":"\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath d=\"m11.54 6.143.046.025 3.928 2.226a.878.878 0 0 0 .865 0l3.896-2.202a1.315 1.315 0 0 1 1.792.482 1.336 1.336 0 0 1-.45 1.808l-.045.027-2.249 1.273a.442.442 0 0 0-.224.386.446.446 0 0 0 .224.386l6.072 3.442a.875.875 0 0 0 .865 0l3.756-2.129a1.315 1.315 0 0 1 1.796.478 1.335 1.335 0 0 1-.453 1.812l-.045.027-2.115 1.196a.442.442 0 0 0-.164.61c.04.067.096.123.164.162l2.125 1.204a1.329 1.329 0 0 1 .518 1.79 1.316 1.316 0 0 1-1.771.551l-.046-.025-3.766-2.135a.877.877 0 0 0-.865 0l-6.14 3.48a.441.441 0 0 0-.164.61.44.44 0 0 0 .164.161l2.537 1.438a1.336 1.336 0 0 1 .51 1.785 1.318 1.318 0 0 1-1.763.556l-.046-.025-4.177-2.369a.878.878 0 0 0-.865 0l-4.215 2.392a1.315 1.315 0 0 1-1.79-.48 1.335 1.335 0 0 1 .447-1.81l.045-.026 2.572-1.46a.44.44 0 0 0 .167-.604.432.432 0 0 0-.167-.168l-6.084-3.448a.878.878 0 0 0-.866 0l-3.582 2.027a1.316 1.316 0 0 1-1.794-.48 1.336 1.336 0 0 1 .453-1.81l.045-.027 1.937-1.096a.44.44 0 0 0 .225-.386.444.444 0 0 0-.225-.386L.684 14.314a1.336 1.336 0 0 1-.51-1.785 1.315 1.315 0 0 1 1.762-.556l.047.025 3.579 2.029a.876.876 0 0 0 .864 0l6.143-3.476a.442.442 0 0 0 .225-.386.444.444 0 0 0-.225-.386l-2.281-1.295a1.336 1.336 0 0 1-.51-1.785c.164-.305.44-.534.769-.638.329-.104.685-.074.993.083v-.001Zm3.973 5.793-6.144 3.476a.442.442 0 0 0-.165.61c.04.068.096.124.165.163l6.08 3.446a.876.876 0 0 0 .866 0l6.138-3.48a.442.442 0 0 0 .164-.609.443.443 0 0 0-.164-.162l-6.076-3.444a.877.877 0 0 0-.865 0Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003cdefs\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"#fff\" d=\"M0 0h32v32H0z\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003c/svg\u003e","Secondary Color":"#e281f0","Shape":"circle"},"model":{"name":"TRAEFIK_MESH","version":"v1.4.5","display-name":"TRAEFIK_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\"$id\":\"http://meshery.layer5.io/definition/Workload/TraefikMesh\",\"$schema\":\"http://json-schema.org/draft-07/schema\",\"title\":\"TraefikMesh\",\"type\":\"object\",\"properties\":{}}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.4.5/trafficsplit.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.4.5/trafficsplit.meshery.layer5.io_meshmodel.json new file mode 100644 index 0000000..20abf3c --- /dev/null +++ b/templates/meshmodel/components/v1.4.5/trafficsplit.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"TrafficSplit","apiVersion":"split.smi-spec.io/v1alpha4","display-name":"Traffic Split","format":"JSON","metadata":{"Logo URL":"","Primary Color":"#9D0FB0","SVG_Color":"","SVG_White":"\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath d=\"m11.54 6.143.046.025 3.928 2.226a.878.878 0 0 0 .865 0l3.896-2.202a1.315 1.315 0 0 1 1.792.482 1.336 1.336 0 0 1-.45 1.808l-.045.027-2.249 1.273a.442.442 0 0 0-.224.386.446.446 0 0 0 .224.386l6.072 3.442a.875.875 0 0 0 .865 0l3.756-2.129a1.315 1.315 0 0 1 1.796.478 1.335 1.335 0 0 1-.453 1.812l-.045.027-2.115 1.196a.442.442 0 0 0-.164.61c.04.067.096.123.164.162l2.125 1.204a1.329 1.329 0 0 1 .518 1.79 1.316 1.316 0 0 1-1.771.551l-.046-.025-3.766-2.135a.877.877 0 0 0-.865 0l-6.14 3.48a.441.441 0 0 0-.164.61.44.44 0 0 0 .164.161l2.537 1.438a1.336 1.336 0 0 1 .51 1.785 1.318 1.318 0 0 1-1.763.556l-.046-.025-4.177-2.369a.878.878 0 0 0-.865 0l-4.215 2.392a1.315 1.315 0 0 1-1.79-.48 1.335 1.335 0 0 1 .447-1.81l.045-.026 2.572-1.46a.44.44 0 0 0 .167-.604.432.432 0 0 0-.167-.168l-6.084-3.448a.878.878 0 0 0-.866 0l-3.582 2.027a1.316 1.316 0 0 1-1.794-.48 1.336 1.336 0 0 1 .453-1.81l.045-.027 1.937-1.096a.44.44 0 0 0 .225-.386.444.444 0 0 0-.225-.386L.684 14.314a1.336 1.336 0 0 1-.51-1.785 1.315 1.315 0 0 1 1.762-.556l.047.025 3.579 2.029a.876.876 0 0 0 .864 0l6.143-3.476a.442.442 0 0 0 .225-.386.444.444 0 0 0-.225-.386l-2.281-1.295a1.336 1.336 0 0 1-.51-1.785c.164-.305.44-.534.769-.638.329-.104.685-.074.993.083v-.001Zm3.973 5.793-6.144 3.476a.442.442 0 0 0-.165.61c.04.068.096.124.165.163l6.08 3.446a.876.876 0 0 0 .866 0l6.138-3.48a.442.442 0 0 0 .164-.609.443.443 0 0 0-.164-.162l-6.076-3.444a.877.877 0 0 0-.865 0Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003cdefs\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"#fff\" d=\"M0 0h32v32H0z\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003c/svg\u003e","Secondary Color":"#e281f0","Shape":"circle"},"model":{"name":"TRAEFIK_MESH","version":"v1.4.5","display-name":"TRAEFIK_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"backends\": {\n \"description\": \"The backend services of this split.\",\n \"items\": {\n \"properties\": {\n \"service\": {\n \"description\": \"Name of the Kubernetes service.\",\n \"type\": \"string\"\n },\n \"weight\": {\n \"description\": \"Traffic weight value of this backend.\",\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"service\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matches\": {\n \"description\": \"The HTTP route groups that this traffic split should match.\",\n \"items\": {\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of the matching group.\",\n \"enum\": [\n \"HTTPRouteGroup\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the matching group.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"service\": {\n \"description\": \"The apex service of this split.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"service\",\n \"backends\"\n ],\n \"title\": \"Traffic Split\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.4.5/traffictarget.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.4.5/traffictarget.meshery.layer5.io_meshmodel.json new file mode 100644 index 0000000..0384908 --- /dev/null +++ b/templates/meshmodel/components/v1.4.5/traffictarget.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"TrafficTarget","apiVersion":"access.smi-spec.io/v1alpha3","display-name":"Traffic Target","format":"JSON","metadata":{"Logo URL":"","Primary Color":"#9D0FB0","SVG_Color":"","SVG_White":"\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath d=\"m11.54 6.143.046.025 3.928 2.226a.878.878 0 0 0 .865 0l3.896-2.202a1.315 1.315 0 0 1 1.792.482 1.336 1.336 0 0 1-.45 1.808l-.045.027-2.249 1.273a.442.442 0 0 0-.224.386.446.446 0 0 0 .224.386l6.072 3.442a.875.875 0 0 0 .865 0l3.756-2.129a1.315 1.315 0 0 1 1.796.478 1.335 1.335 0 0 1-.453 1.812l-.045.027-2.115 1.196a.442.442 0 0 0-.164.61c.04.067.096.123.164.162l2.125 1.204a1.329 1.329 0 0 1 .518 1.79 1.316 1.316 0 0 1-1.771.551l-.046-.025-3.766-2.135a.877.877 0 0 0-.865 0l-6.14 3.48a.441.441 0 0 0-.164.61.44.44 0 0 0 .164.161l2.537 1.438a1.336 1.336 0 0 1 .51 1.785 1.318 1.318 0 0 1-1.763.556l-.046-.025-4.177-2.369a.878.878 0 0 0-.865 0l-4.215 2.392a1.315 1.315 0 0 1-1.79-.48 1.335 1.335 0 0 1 .447-1.81l.045-.026 2.572-1.46a.44.44 0 0 0 .167-.604.432.432 0 0 0-.167-.168l-6.084-3.448a.878.878 0 0 0-.866 0l-3.582 2.027a1.316 1.316 0 0 1-1.794-.48 1.336 1.336 0 0 1 .453-1.81l.045-.027 1.937-1.096a.44.44 0 0 0 .225-.386.444.444 0 0 0-.225-.386L.684 14.314a1.336 1.336 0 0 1-.51-1.785 1.315 1.315 0 0 1 1.762-.556l.047.025 3.579 2.029a.876.876 0 0 0 .864 0l6.143-3.476a.442.442 0 0 0 .225-.386.444.444 0 0 0-.225-.386l-2.281-1.295a1.336 1.336 0 0 1-.51-1.785c.164-.305.44-.534.769-.638.329-.104.685-.074.993.083v-.001Zm3.973 5.793-6.144 3.476a.442.442 0 0 0-.165.61c.04.068.096.124.165.163l6.08 3.446a.876.876 0 0 0 .866 0l6.138-3.48a.442.442 0 0 0 .164-.609.443.443 0 0 0-.164-.162l-6.076-3.444a.877.877 0 0 0-.865 0Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003cdefs\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"#fff\" d=\"M0 0h32v32H0z\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003c/svg\u003e","Secondary Color":"#e281f0","Shape":"circle"},"model":{"name":"TRAEFIK_MESH","version":"v1.4.5","display-name":"TRAEFIK_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"destination\": {\n \"description\": \"The destination of this traffic target.\",\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of the destination.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the destination.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the destination.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"rules\": {\n \"description\": \"Specifications of this traffic target.\",\n \"items\": {\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of this spec.\",\n \"enum\": [\n \"HTTPRouteGroup\",\n \"TCPRoute\",\n \"UDPRoute\"\n ],\n \"type\": \"string\"\n },\n \"matches\": {\n \"description\": \"Match conditions of this spec.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of this spec.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"sources\": {\n \"description\": \"Sources of this traffic target.\",\n \"items\": {\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of this source.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of this source.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of this source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"destination\",\n \"rules\",\n \"sources\"\n ],\n \"title\": \"Traffic Target\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.4.7/httproutegroup.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.4.7/httproutegroup.meshery.layer5.io_meshmodel.json new file mode 100644 index 0000000..8074015 --- /dev/null +++ b/templates/meshmodel/components/v1.4.7/httproutegroup.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"HTTPRouteGroup","apiVersion":"specs.smi-spec.io/v1alpha4","display-name":"HTTP Route Group","format":"JSON","metadata":{"Logo URL":"","Primary Color":"#9D0FB0","SVG_Color":"","SVG_White":"\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath d=\"m11.54 6.143.046.025 3.928 2.226a.878.878 0 0 0 .865 0l3.896-2.202a1.315 1.315 0 0 1 1.792.482 1.336 1.336 0 0 1-.45 1.808l-.045.027-2.249 1.273a.442.442 0 0 0-.224.386.446.446 0 0 0 .224.386l6.072 3.442a.875.875 0 0 0 .865 0l3.756-2.129a1.315 1.315 0 0 1 1.796.478 1.335 1.335 0 0 1-.453 1.812l-.045.027-2.115 1.196a.442.442 0 0 0-.164.61c.04.067.096.123.164.162l2.125 1.204a1.329 1.329 0 0 1 .518 1.79 1.316 1.316 0 0 1-1.771.551l-.046-.025-3.766-2.135a.877.877 0 0 0-.865 0l-6.14 3.48a.441.441 0 0 0-.164.61.44.44 0 0 0 .164.161l2.537 1.438a1.336 1.336 0 0 1 .51 1.785 1.318 1.318 0 0 1-1.763.556l-.046-.025-4.177-2.369a.878.878 0 0 0-.865 0l-4.215 2.392a1.315 1.315 0 0 1-1.79-.48 1.335 1.335 0 0 1 .447-1.81l.045-.026 2.572-1.46a.44.44 0 0 0 .167-.604.432.432 0 0 0-.167-.168l-6.084-3.448a.878.878 0 0 0-.866 0l-3.582 2.027a1.316 1.316 0 0 1-1.794-.48 1.336 1.336 0 0 1 .453-1.81l.045-.027 1.937-1.096a.44.44 0 0 0 .225-.386.444.444 0 0 0-.225-.386L.684 14.314a1.336 1.336 0 0 1-.51-1.785 1.315 1.315 0 0 1 1.762-.556l.047.025 3.579 2.029a.876.876 0 0 0 .864 0l6.143-3.476a.442.442 0 0 0 .225-.386.444.444 0 0 0-.225-.386l-2.281-1.295a1.336 1.336 0 0 1-.51-1.785c.164-.305.44-.534.769-.638.329-.104.685-.074.993.083v-.001Zm3.973 5.793-6.144 3.476a.442.442 0 0 0-.165.61c.04.068.096.124.165.163l6.08 3.446a.876.876 0 0 0 .866 0l6.138-3.48a.442.442 0 0 0 .164-.609.443.443 0 0 0-.164-.162l-6.076-3.444a.877.877 0 0 0-.865 0Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003cdefs\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"#fff\" d=\"M0 0h32v32H0z\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003c/svg\u003e","Secondary Color":"#e281f0","Shape":"circle"},"model":{"name":"TRAEFIK_MESH","version":"v1.4.7","display-name":"TRAEFIK_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"matches\": {\n \"description\": \"Match conditions of this route group.\",\n \"items\": {\n \"properties\": {\n \"headers\": {\n \"description\": \"Header match conditions of this route.\",\n \"items\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Header match condition of this route.\",\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"methods\": {\n \"description\": \"The HTTP methods of this HTTP route.\",\n \"items\": {\n \"description\": \"The HTTP method of this HTTP route.\",\n \"enum\": [\n \"*\",\n \"GET\",\n \"HEAD\",\n \"PUT\",\n \"POST\",\n \"DELETE\",\n \"CONNECT\",\n \"OPTIONS\",\n \"TRACE\",\n \"PATCH\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the HTTP route.\",\n \"type\": \"string\"\n },\n \"pathRegex\": {\n \"description\": \"URI path regex of the HTTP route.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"matches\"\n ],\n \"title\": \"HTTP Route Group\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.4.7/tcproute.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.4.7/tcproute.meshery.layer5.io_meshmodel.json new file mode 100644 index 0000000..6a2ba0a --- /dev/null +++ b/templates/meshmodel/components/v1.4.7/tcproute.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"TCPRoute","apiVersion":"specs.smi-spec.io/v1alpha4","display-name":"TCP Route","format":"JSON","metadata":{"Logo URL":"","Primary Color":"#9D0FB0","SVG_Color":"","SVG_White":"\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath d=\"m11.54 6.143.046.025 3.928 2.226a.878.878 0 0 0 .865 0l3.896-2.202a1.315 1.315 0 0 1 1.792.482 1.336 1.336 0 0 1-.45 1.808l-.045.027-2.249 1.273a.442.442 0 0 0-.224.386.446.446 0 0 0 .224.386l6.072 3.442a.875.875 0 0 0 .865 0l3.756-2.129a1.315 1.315 0 0 1 1.796.478 1.335 1.335 0 0 1-.453 1.812l-.045.027-2.115 1.196a.442.442 0 0 0-.164.61c.04.067.096.123.164.162l2.125 1.204a1.329 1.329 0 0 1 .518 1.79 1.316 1.316 0 0 1-1.771.551l-.046-.025-3.766-2.135a.877.877 0 0 0-.865 0l-6.14 3.48a.441.441 0 0 0-.164.61.44.44 0 0 0 .164.161l2.537 1.438a1.336 1.336 0 0 1 .51 1.785 1.318 1.318 0 0 1-1.763.556l-.046-.025-4.177-2.369a.878.878 0 0 0-.865 0l-4.215 2.392a1.315 1.315 0 0 1-1.79-.48 1.335 1.335 0 0 1 .447-1.81l.045-.026 2.572-1.46a.44.44 0 0 0 .167-.604.432.432 0 0 0-.167-.168l-6.084-3.448a.878.878 0 0 0-.866 0l-3.582 2.027a1.316 1.316 0 0 1-1.794-.48 1.336 1.336 0 0 1 .453-1.81l.045-.027 1.937-1.096a.44.44 0 0 0 .225-.386.444.444 0 0 0-.225-.386L.684 14.314a1.336 1.336 0 0 1-.51-1.785 1.315 1.315 0 0 1 1.762-.556l.047.025 3.579 2.029a.876.876 0 0 0 .864 0l6.143-3.476a.442.442 0 0 0 .225-.386.444.444 0 0 0-.225-.386l-2.281-1.295a1.336 1.336 0 0 1-.51-1.785c.164-.305.44-.534.769-.638.329-.104.685-.074.993.083v-.001Zm3.973 5.793-6.144 3.476a.442.442 0 0 0-.165.61c.04.068.096.124.165.163l6.08 3.446a.876.876 0 0 0 .866 0l6.138-3.48a.442.442 0 0 0 .164-.609.443.443 0 0 0-.164-.162l-6.076-3.444a.877.877 0 0 0-.865 0Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003cdefs\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"#fff\" d=\"M0 0h32v32H0z\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003c/svg\u003e","Secondary Color":"#e281f0","Shape":"circle"},"model":{"name":"TRAEFIK_MESH","version":"v1.4.7","display-name":"TRAEFIK_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"matches\": {\n \"description\": \"Match conditions of this route.\",\n \"properties\": {\n \"ports\": {\n \"description\": \"Port numbers to match TCP traffic.\",\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"ports\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"matches\"\n ],\n \"title\": \"TCP Route\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.4.7/traefikmesh_meshmodel.json b/templates/meshmodel/components/v1.4.7/traefikmesh_meshmodel.json new file mode 100644 index 0000000..6eb2171 --- /dev/null +++ b/templates/meshmodel/components/v1.4.7/traefikmesh_meshmodel.json @@ -0,0 +1 @@ +{"kind":"TraefikMesh","apiVersion":"core.meshmodel.dev/v1alpha1","display-name":"Traefik Mesh","format":"JSON","metadata":{"Logo URL":"","Primary Color":"#9D0FB0","SVG_Color":"","SVG_White":"\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath d=\"m11.54 6.143.046.025 3.928 2.226a.878.878 0 0 0 .865 0l3.896-2.202a1.315 1.315 0 0 1 1.792.482 1.336 1.336 0 0 1-.45 1.808l-.045.027-2.249 1.273a.442.442 0 0 0-.224.386.446.446 0 0 0 .224.386l6.072 3.442a.875.875 0 0 0 .865 0l3.756-2.129a1.315 1.315 0 0 1 1.796.478 1.335 1.335 0 0 1-.453 1.812l-.045.027-2.115 1.196a.442.442 0 0 0-.164.61c.04.067.096.123.164.162l2.125 1.204a1.329 1.329 0 0 1 .518 1.79 1.316 1.316 0 0 1-1.771.551l-.046-.025-3.766-2.135a.877.877 0 0 0-.865 0l-6.14 3.48a.441.441 0 0 0-.164.61.44.44 0 0 0 .164.161l2.537 1.438a1.336 1.336 0 0 1 .51 1.785 1.318 1.318 0 0 1-1.763.556l-.046-.025-4.177-2.369a.878.878 0 0 0-.865 0l-4.215 2.392a1.315 1.315 0 0 1-1.79-.48 1.335 1.335 0 0 1 .447-1.81l.045-.026 2.572-1.46a.44.44 0 0 0 .167-.604.432.432 0 0 0-.167-.168l-6.084-3.448a.878.878 0 0 0-.866 0l-3.582 2.027a1.316 1.316 0 0 1-1.794-.48 1.336 1.336 0 0 1 .453-1.81l.045-.027 1.937-1.096a.44.44 0 0 0 .225-.386.444.444 0 0 0-.225-.386L.684 14.314a1.336 1.336 0 0 1-.51-1.785 1.315 1.315 0 0 1 1.762-.556l.047.025 3.579 2.029a.876.876 0 0 0 .864 0l6.143-3.476a.442.442 0 0 0 .225-.386.444.444 0 0 0-.225-.386l-2.281-1.295a1.336 1.336 0 0 1-.51-1.785c.164-.305.44-.534.769-.638.329-.104.685-.074.993.083v-.001Zm3.973 5.793-6.144 3.476a.442.442 0 0 0-.165.61c.04.068.096.124.165.163l6.08 3.446a.876.876 0 0 0 .866 0l6.138-3.48a.442.442 0 0 0 .164-.609.443.443 0 0 0-.164-.162l-6.076-3.444a.877.877 0 0 0-.865 0Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003cdefs\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"#fff\" d=\"M0 0h32v32H0z\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003c/svg\u003e","Secondary Color":"#e281f0","Shape":"circle"},"model":{"name":"TRAEFIK_MESH","version":"v1.4.7","display-name":"TRAEFIK_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\"$id\":\"http://meshery.layer5.io/definition/Workload/TraefikMesh\",\"$schema\":\"http://json-schema.org/draft-07/schema\",\"title\":\"TraefikMesh\",\"type\":\"object\",\"properties\":{}}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.4.7/trafficsplit.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.4.7/trafficsplit.meshery.layer5.io_meshmodel.json new file mode 100644 index 0000000..eab698d --- /dev/null +++ b/templates/meshmodel/components/v1.4.7/trafficsplit.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"TrafficSplit","apiVersion":"split.smi-spec.io/v1alpha4","display-name":"Traffic Split","format":"JSON","metadata":{"Logo URL":"","Primary Color":"#9D0FB0","SVG_Color":"","SVG_White":"\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath d=\"m11.54 6.143.046.025 3.928 2.226a.878.878 0 0 0 .865 0l3.896-2.202a1.315 1.315 0 0 1 1.792.482 1.336 1.336 0 0 1-.45 1.808l-.045.027-2.249 1.273a.442.442 0 0 0-.224.386.446.446 0 0 0 .224.386l6.072 3.442a.875.875 0 0 0 .865 0l3.756-2.129a1.315 1.315 0 0 1 1.796.478 1.335 1.335 0 0 1-.453 1.812l-.045.027-2.115 1.196a.442.442 0 0 0-.164.61c.04.067.096.123.164.162l2.125 1.204a1.329 1.329 0 0 1 .518 1.79 1.316 1.316 0 0 1-1.771.551l-.046-.025-3.766-2.135a.877.877 0 0 0-.865 0l-6.14 3.48a.441.441 0 0 0-.164.61.44.44 0 0 0 .164.161l2.537 1.438a1.336 1.336 0 0 1 .51 1.785 1.318 1.318 0 0 1-1.763.556l-.046-.025-4.177-2.369a.878.878 0 0 0-.865 0l-4.215 2.392a1.315 1.315 0 0 1-1.79-.48 1.335 1.335 0 0 1 .447-1.81l.045-.026 2.572-1.46a.44.44 0 0 0 .167-.604.432.432 0 0 0-.167-.168l-6.084-3.448a.878.878 0 0 0-.866 0l-3.582 2.027a1.316 1.316 0 0 1-1.794-.48 1.336 1.336 0 0 1 .453-1.81l.045-.027 1.937-1.096a.44.44 0 0 0 .225-.386.444.444 0 0 0-.225-.386L.684 14.314a1.336 1.336 0 0 1-.51-1.785 1.315 1.315 0 0 1 1.762-.556l.047.025 3.579 2.029a.876.876 0 0 0 .864 0l6.143-3.476a.442.442 0 0 0 .225-.386.444.444 0 0 0-.225-.386l-2.281-1.295a1.336 1.336 0 0 1-.51-1.785c.164-.305.44-.534.769-.638.329-.104.685-.074.993.083v-.001Zm3.973 5.793-6.144 3.476a.442.442 0 0 0-.165.61c.04.068.096.124.165.163l6.08 3.446a.876.876 0 0 0 .866 0l6.138-3.48a.442.442 0 0 0 .164-.609.443.443 0 0 0-.164-.162l-6.076-3.444a.877.877 0 0 0-.865 0Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003cdefs\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"#fff\" d=\"M0 0h32v32H0z\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003c/svg\u003e","Secondary Color":"#e281f0","Shape":"circle"},"model":{"name":"TRAEFIK_MESH","version":"v1.4.7","display-name":"TRAEFIK_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"backends\": {\n \"description\": \"The backend services of this split.\",\n \"items\": {\n \"properties\": {\n \"service\": {\n \"description\": \"Name of the Kubernetes service.\",\n \"type\": \"string\"\n },\n \"weight\": {\n \"description\": \"Traffic weight value of this backend.\",\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"service\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matches\": {\n \"description\": \"The HTTP route groups that this traffic split should match.\",\n \"items\": {\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of the matching group.\",\n \"enum\": [\n \"HTTPRouteGroup\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the matching group.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"service\": {\n \"description\": \"The apex service of this split.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"service\",\n \"backends\"\n ],\n \"title\": \"Traffic Split\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.4.7/traffictarget.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.4.7/traffictarget.meshery.layer5.io_meshmodel.json new file mode 100644 index 0000000..0e4b006 --- /dev/null +++ b/templates/meshmodel/components/v1.4.7/traffictarget.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"TrafficTarget","apiVersion":"access.smi-spec.io/v1alpha3","display-name":"Traffic Target","format":"JSON","metadata":{"Logo URL":"","Primary Color":"#9D0FB0","SVG_Color":"","SVG_White":"\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath d=\"m11.54 6.143.046.025 3.928 2.226a.878.878 0 0 0 .865 0l3.896-2.202a1.315 1.315 0 0 1 1.792.482 1.336 1.336 0 0 1-.45 1.808l-.045.027-2.249 1.273a.442.442 0 0 0-.224.386.446.446 0 0 0 .224.386l6.072 3.442a.875.875 0 0 0 .865 0l3.756-2.129a1.315 1.315 0 0 1 1.796.478 1.335 1.335 0 0 1-.453 1.812l-.045.027-2.115 1.196a.442.442 0 0 0-.164.61c.04.067.096.123.164.162l2.125 1.204a1.329 1.329 0 0 1 .518 1.79 1.316 1.316 0 0 1-1.771.551l-.046-.025-3.766-2.135a.877.877 0 0 0-.865 0l-6.14 3.48a.441.441 0 0 0-.164.61.44.44 0 0 0 .164.161l2.537 1.438a1.336 1.336 0 0 1 .51 1.785 1.318 1.318 0 0 1-1.763.556l-.046-.025-4.177-2.369a.878.878 0 0 0-.865 0l-4.215 2.392a1.315 1.315 0 0 1-1.79-.48 1.335 1.335 0 0 1 .447-1.81l.045-.026 2.572-1.46a.44.44 0 0 0 .167-.604.432.432 0 0 0-.167-.168l-6.084-3.448a.878.878 0 0 0-.866 0l-3.582 2.027a1.316 1.316 0 0 1-1.794-.48 1.336 1.336 0 0 1 .453-1.81l.045-.027 1.937-1.096a.44.44 0 0 0 .225-.386.444.444 0 0 0-.225-.386L.684 14.314a1.336 1.336 0 0 1-.51-1.785 1.315 1.315 0 0 1 1.762-.556l.047.025 3.579 2.029a.876.876 0 0 0 .864 0l6.143-3.476a.442.442 0 0 0 .225-.386.444.444 0 0 0-.225-.386l-2.281-1.295a1.336 1.336 0 0 1-.51-1.785c.164-.305.44-.534.769-.638.329-.104.685-.074.993.083v-.001Zm3.973 5.793-6.144 3.476a.442.442 0 0 0-.165.61c.04.068.096.124.165.163l6.08 3.446a.876.876 0 0 0 .866 0l6.138-3.48a.442.442 0 0 0 .164-.609.443.443 0 0 0-.164-.162l-6.076-3.444a.877.877 0 0 0-.865 0Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003cdefs\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"#fff\" d=\"M0 0h32v32H0z\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003c/svg\u003e","Secondary Color":"#e281f0","Shape":"circle"},"model":{"name":"TRAEFIK_MESH","version":"v1.4.7","display-name":"TRAEFIK_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"destination\": {\n \"description\": \"The destination of this traffic target.\",\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of the destination.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the destination.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the destination.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"rules\": {\n \"description\": \"Specifications of this traffic target.\",\n \"items\": {\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of this spec.\",\n \"enum\": [\n \"HTTPRouteGroup\",\n \"TCPRoute\",\n \"UDPRoute\"\n ],\n \"type\": \"string\"\n },\n \"matches\": {\n \"description\": \"Match conditions of this spec.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of this spec.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"sources\": {\n \"description\": \"Sources of this traffic target.\",\n \"items\": {\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of this source.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of this source.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of this source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"destination\",\n \"rules\",\n \"sources\"\n ],\n \"title\": \"Traffic Target\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.4.8/httproutegroup.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.4.8/httproutegroup.meshery.layer5.io_meshmodel.json new file mode 100644 index 0000000..d7da4ed --- /dev/null +++ b/templates/meshmodel/components/v1.4.8/httproutegroup.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"HTTPRouteGroup","apiVersion":"specs.smi-spec.io/v1alpha4","display-name":"HTTP Route Group","format":"JSON","metadata":{"Logo URL":"","Primary Color":"#9D0FB0","SVG_Color":"","SVG_White":"\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath d=\"m11.54 6.143.046.025 3.928 2.226a.878.878 0 0 0 .865 0l3.896-2.202a1.315 1.315 0 0 1 1.792.482 1.336 1.336 0 0 1-.45 1.808l-.045.027-2.249 1.273a.442.442 0 0 0-.224.386.446.446 0 0 0 .224.386l6.072 3.442a.875.875 0 0 0 .865 0l3.756-2.129a1.315 1.315 0 0 1 1.796.478 1.335 1.335 0 0 1-.453 1.812l-.045.027-2.115 1.196a.442.442 0 0 0-.164.61c.04.067.096.123.164.162l2.125 1.204a1.329 1.329 0 0 1 .518 1.79 1.316 1.316 0 0 1-1.771.551l-.046-.025-3.766-2.135a.877.877 0 0 0-.865 0l-6.14 3.48a.441.441 0 0 0-.164.61.44.44 0 0 0 .164.161l2.537 1.438a1.336 1.336 0 0 1 .51 1.785 1.318 1.318 0 0 1-1.763.556l-.046-.025-4.177-2.369a.878.878 0 0 0-.865 0l-4.215 2.392a1.315 1.315 0 0 1-1.79-.48 1.335 1.335 0 0 1 .447-1.81l.045-.026 2.572-1.46a.44.44 0 0 0 .167-.604.432.432 0 0 0-.167-.168l-6.084-3.448a.878.878 0 0 0-.866 0l-3.582 2.027a1.316 1.316 0 0 1-1.794-.48 1.336 1.336 0 0 1 .453-1.81l.045-.027 1.937-1.096a.44.44 0 0 0 .225-.386.444.444 0 0 0-.225-.386L.684 14.314a1.336 1.336 0 0 1-.51-1.785 1.315 1.315 0 0 1 1.762-.556l.047.025 3.579 2.029a.876.876 0 0 0 .864 0l6.143-3.476a.442.442 0 0 0 .225-.386.444.444 0 0 0-.225-.386l-2.281-1.295a1.336 1.336 0 0 1-.51-1.785c.164-.305.44-.534.769-.638.329-.104.685-.074.993.083v-.001Zm3.973 5.793-6.144 3.476a.442.442 0 0 0-.165.61c.04.068.096.124.165.163l6.08 3.446a.876.876 0 0 0 .866 0l6.138-3.48a.442.442 0 0 0 .164-.609.443.443 0 0 0-.164-.162l-6.076-3.444a.877.877 0 0 0-.865 0Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003cdefs\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"#fff\" d=\"M0 0h32v32H0z\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003c/svg\u003e","Secondary Color":"#e281f0","Shape":"circle"},"model":{"name":"TRAEFIK_MESH","version":"v1.4.8","display-name":"TRAEFIK_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"matches\": {\n \"description\": \"Match conditions of this route group.\",\n \"items\": {\n \"properties\": {\n \"headers\": {\n \"description\": \"Header match conditions of this route.\",\n \"items\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Header match condition of this route.\",\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"methods\": {\n \"description\": \"The HTTP methods of this HTTP route.\",\n \"items\": {\n \"description\": \"The HTTP method of this HTTP route.\",\n \"enum\": [\n \"*\",\n \"GET\",\n \"HEAD\",\n \"PUT\",\n \"POST\",\n \"DELETE\",\n \"CONNECT\",\n \"OPTIONS\",\n \"TRACE\",\n \"PATCH\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of the HTTP route.\",\n \"type\": \"string\"\n },\n \"pathRegex\": {\n \"description\": \"URI path regex of the HTTP route.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"matches\"\n ],\n \"title\": \"HTTP Route Group\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.4.8/tcproute.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.4.8/tcproute.meshery.layer5.io_meshmodel.json new file mode 100644 index 0000000..4a3f9f0 --- /dev/null +++ b/templates/meshmodel/components/v1.4.8/tcproute.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"TCPRoute","apiVersion":"specs.smi-spec.io/v1alpha4","display-name":"TCP Route","format":"JSON","metadata":{"Logo URL":"","Primary Color":"#9D0FB0","SVG_Color":"","SVG_White":"\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath d=\"m11.54 6.143.046.025 3.928 2.226a.878.878 0 0 0 .865 0l3.896-2.202a1.315 1.315 0 0 1 1.792.482 1.336 1.336 0 0 1-.45 1.808l-.045.027-2.249 1.273a.442.442 0 0 0-.224.386.446.446 0 0 0 .224.386l6.072 3.442a.875.875 0 0 0 .865 0l3.756-2.129a1.315 1.315 0 0 1 1.796.478 1.335 1.335 0 0 1-.453 1.812l-.045.027-2.115 1.196a.442.442 0 0 0-.164.61c.04.067.096.123.164.162l2.125 1.204a1.329 1.329 0 0 1 .518 1.79 1.316 1.316 0 0 1-1.771.551l-.046-.025-3.766-2.135a.877.877 0 0 0-.865 0l-6.14 3.48a.441.441 0 0 0-.164.61.44.44 0 0 0 .164.161l2.537 1.438a1.336 1.336 0 0 1 .51 1.785 1.318 1.318 0 0 1-1.763.556l-.046-.025-4.177-2.369a.878.878 0 0 0-.865 0l-4.215 2.392a1.315 1.315 0 0 1-1.79-.48 1.335 1.335 0 0 1 .447-1.81l.045-.026 2.572-1.46a.44.44 0 0 0 .167-.604.432.432 0 0 0-.167-.168l-6.084-3.448a.878.878 0 0 0-.866 0l-3.582 2.027a1.316 1.316 0 0 1-1.794-.48 1.336 1.336 0 0 1 .453-1.81l.045-.027 1.937-1.096a.44.44 0 0 0 .225-.386.444.444 0 0 0-.225-.386L.684 14.314a1.336 1.336 0 0 1-.51-1.785 1.315 1.315 0 0 1 1.762-.556l.047.025 3.579 2.029a.876.876 0 0 0 .864 0l6.143-3.476a.442.442 0 0 0 .225-.386.444.444 0 0 0-.225-.386l-2.281-1.295a1.336 1.336 0 0 1-.51-1.785c.164-.305.44-.534.769-.638.329-.104.685-.074.993.083v-.001Zm3.973 5.793-6.144 3.476a.442.442 0 0 0-.165.61c.04.068.096.124.165.163l6.08 3.446a.876.876 0 0 0 .866 0l6.138-3.48a.442.442 0 0 0 .164-.609.443.443 0 0 0-.164-.162l-6.076-3.444a.877.877 0 0 0-.865 0Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003cdefs\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"#fff\" d=\"M0 0h32v32H0z\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003c/svg\u003e","Secondary Color":"#e281f0","Shape":"circle"},"model":{"name":"TRAEFIK_MESH","version":"v1.4.8","display-name":"TRAEFIK_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"matches\": {\n \"description\": \"Match conditions of this route.\",\n \"properties\": {\n \"ports\": {\n \"description\": \"Port numbers to match TCP traffic.\",\n \"items\": {\n \"type\": \"integer\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"ports\"\n ],\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"matches\"\n ],\n \"title\": \"TCP Route\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.4.8/traefikmesh_meshmodel.json b/templates/meshmodel/components/v1.4.8/traefikmesh_meshmodel.json new file mode 100644 index 0000000..91c1273 --- /dev/null +++ b/templates/meshmodel/components/v1.4.8/traefikmesh_meshmodel.json @@ -0,0 +1,24 @@ +{ + "kind": "TraefikMesh", + "apiVersion": "core.meshmodel.dev/v1alpha1", + "display-name": "Traefik Mesh", + "format": "JSON", + "metadata": + { + "Logo URL": "", + "Primary Color": "#9D0FB0", + "SVG_Color": "", + "SVG_White": "", + "Secondary Color": "#e281f0", + "Shape": "circle" + }, + "model": + { + "name": "TRAEFIK_MESH", + "version": "v1.4.8", + "display-name": "TRAEFIK_MESH", + "category": "Orchestration & Management", + "sub-category": "Service Mesh" + }, + "schema": "{\"$id\":\"http://meshery.layer5.io/definition/Workload/TraefikMesh\",\"$schema\":\"http://json-schema.org/draft-07/schema\",\"title\":\"TraefikMesh\",\"type\":\"object\",\"properties\":{}}" +} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.4.8/trafficsplit.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.4.8/trafficsplit.meshery.layer5.io_meshmodel.json new file mode 100644 index 0000000..b799df2 --- /dev/null +++ b/templates/meshmodel/components/v1.4.8/trafficsplit.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"TrafficSplit","apiVersion":"split.smi-spec.io/v1alpha4","display-name":"Traffic Split","format":"JSON","metadata":{"Logo URL":"","Primary Color":"#9D0FB0","SVG_Color":"","SVG_White":"\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath d=\"m11.54 6.143.046.025 3.928 2.226a.878.878 0 0 0 .865 0l3.896-2.202a1.315 1.315 0 0 1 1.792.482 1.336 1.336 0 0 1-.45 1.808l-.045.027-2.249 1.273a.442.442 0 0 0-.224.386.446.446 0 0 0 .224.386l6.072 3.442a.875.875 0 0 0 .865 0l3.756-2.129a1.315 1.315 0 0 1 1.796.478 1.335 1.335 0 0 1-.453 1.812l-.045.027-2.115 1.196a.442.442 0 0 0-.164.61c.04.067.096.123.164.162l2.125 1.204a1.329 1.329 0 0 1 .518 1.79 1.316 1.316 0 0 1-1.771.551l-.046-.025-3.766-2.135a.877.877 0 0 0-.865 0l-6.14 3.48a.441.441 0 0 0-.164.61.44.44 0 0 0 .164.161l2.537 1.438a1.336 1.336 0 0 1 .51 1.785 1.318 1.318 0 0 1-1.763.556l-.046-.025-4.177-2.369a.878.878 0 0 0-.865 0l-4.215 2.392a1.315 1.315 0 0 1-1.79-.48 1.335 1.335 0 0 1 .447-1.81l.045-.026 2.572-1.46a.44.44 0 0 0 .167-.604.432.432 0 0 0-.167-.168l-6.084-3.448a.878.878 0 0 0-.866 0l-3.582 2.027a1.316 1.316 0 0 1-1.794-.48 1.336 1.336 0 0 1 .453-1.81l.045-.027 1.937-1.096a.44.44 0 0 0 .225-.386.444.444 0 0 0-.225-.386L.684 14.314a1.336 1.336 0 0 1-.51-1.785 1.315 1.315 0 0 1 1.762-.556l.047.025 3.579 2.029a.876.876 0 0 0 .864 0l6.143-3.476a.442.442 0 0 0 .225-.386.444.444 0 0 0-.225-.386l-2.281-1.295a1.336 1.336 0 0 1-.51-1.785c.164-.305.44-.534.769-.638.329-.104.685-.074.993.083v-.001Zm3.973 5.793-6.144 3.476a.442.442 0 0 0-.165.61c.04.068.096.124.165.163l6.08 3.446a.876.876 0 0 0 .866 0l6.138-3.48a.442.442 0 0 0 .164-.609.443.443 0 0 0-.164-.162l-6.076-3.444a.877.877 0 0 0-.865 0Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003cdefs\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"#fff\" d=\"M0 0h32v32H0z\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003c/svg\u003e","Secondary Color":"#e281f0","Shape":"circle"},"model":{"name":"TRAEFIK_MESH","version":"v1.4.8","display-name":"TRAEFIK_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"backends\": {\n \"description\": \"The backend services of this split.\",\n \"items\": {\n \"properties\": {\n \"service\": {\n \"description\": \"Name of the Kubernetes service.\",\n \"type\": \"string\"\n },\n \"weight\": {\n \"description\": \"Traffic weight value of this backend.\",\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"service\",\n \"weight\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"matches\": {\n \"description\": \"The HTTP route groups that this traffic split should match.\",\n \"items\": {\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of the matching group.\",\n \"enum\": [\n \"HTTPRouteGroup\"\n ],\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the matching group.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"name\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"service\": {\n \"description\": \"The apex service of this split.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"service\",\n \"backends\"\n ],\n \"title\": \"Traffic Split\",\n \"type\": \"object\"\n}"} \ No newline at end of file diff --git a/templates/meshmodel/components/v1.4.8/traffictarget.meshery.layer5.io_meshmodel.json b/templates/meshmodel/components/v1.4.8/traffictarget.meshery.layer5.io_meshmodel.json new file mode 100644 index 0000000..3b3c275 --- /dev/null +++ b/templates/meshmodel/components/v1.4.8/traffictarget.meshery.layer5.io_meshmodel.json @@ -0,0 +1 @@ +{"kind":"TrafficTarget","apiVersion":"access.smi-spec.io/v1alpha3","display-name":"Traffic Target","format":"JSON","metadata":{"Logo URL":"","Primary Color":"#9D0FB0","SVG_Color":"","SVG_White":"\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cg clip-path=\"url(#a)\"\u003e\u003cpath d=\"m11.54 6.143.046.025 3.928 2.226a.878.878 0 0 0 .865 0l3.896-2.202a1.315 1.315 0 0 1 1.792.482 1.336 1.336 0 0 1-.45 1.808l-.045.027-2.249 1.273a.442.442 0 0 0-.224.386.446.446 0 0 0 .224.386l6.072 3.442a.875.875 0 0 0 .865 0l3.756-2.129a1.315 1.315 0 0 1 1.796.478 1.335 1.335 0 0 1-.453 1.812l-.045.027-2.115 1.196a.442.442 0 0 0-.164.61c.04.067.096.123.164.162l2.125 1.204a1.329 1.329 0 0 1 .518 1.79 1.316 1.316 0 0 1-1.771.551l-.046-.025-3.766-2.135a.877.877 0 0 0-.865 0l-6.14 3.48a.441.441 0 0 0-.164.61.44.44 0 0 0 .164.161l2.537 1.438a1.336 1.336 0 0 1 .51 1.785 1.318 1.318 0 0 1-1.763.556l-.046-.025-4.177-2.369a.878.878 0 0 0-.865 0l-4.215 2.392a1.315 1.315 0 0 1-1.79-.48 1.335 1.335 0 0 1 .447-1.81l.045-.026 2.572-1.46a.44.44 0 0 0 .167-.604.432.432 0 0 0-.167-.168l-6.084-3.448a.878.878 0 0 0-.866 0l-3.582 2.027a1.316 1.316 0 0 1-1.794-.48 1.336 1.336 0 0 1 .453-1.81l.045-.027 1.937-1.096a.44.44 0 0 0 .225-.386.444.444 0 0 0-.225-.386L.684 14.314a1.336 1.336 0 0 1-.51-1.785 1.315 1.315 0 0 1 1.762-.556l.047.025 3.579 2.029a.876.876 0 0 0 .864 0l6.143-3.476a.442.442 0 0 0 .225-.386.444.444 0 0 0-.225-.386l-2.281-1.295a1.336 1.336 0 0 1-.51-1.785c.164-.305.44-.534.769-.638.329-.104.685-.074.993.083v-.001Zm3.973 5.793-6.144 3.476a.442.442 0 0 0-.165.61c.04.068.096.124.165.163l6.08 3.446a.876.876 0 0 0 .866 0l6.138-3.48a.442.442 0 0 0 .164-.609.443.443 0 0 0-.164-.162l-6.076-3.444a.877.877 0 0 0-.865 0Z\" fill=\"#fff\"/\u003e\u003c/g\u003e\u003cdefs\u003e\u003cclipPath id=\"a\"\u003e\u003cpath fill=\"#fff\" d=\"M0 0h32v32H0z\"/\u003e\u003c/clipPath\u003e\u003c/defs\u003e\u003c/svg\u003e","Secondary Color":"#e281f0","Shape":"circle"},"model":{"name":"TRAEFIK_MESH","version":"v1.4.8","display-name":"TRAEFIK_MESH","category":"Orchestration \u0026 Management","sub-category":"Service Mesh"},"schema":"{\n \"properties\": {\n \"destination\": {\n \"description\": \"The destination of this traffic target.\",\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of the destination.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of the destination.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of the destination.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"rules\": {\n \"description\": \"Specifications of this traffic target.\",\n \"items\": {\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of this spec.\",\n \"enum\": [\n \"HTTPRouteGroup\",\n \"TCPRoute\",\n \"UDPRoute\"\n ],\n \"type\": \"string\"\n },\n \"matches\": {\n \"description\": \"Match conditions of this spec.\",\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"name\": {\n \"description\": \"Name of this spec.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n },\n \"sources\": {\n \"description\": \"Sources of this traffic target.\",\n \"items\": {\n \"properties\": {\n \"kind\": {\n \"description\": \"Kind of this source.\",\n \"type\": \"string\"\n },\n \"name\": {\n \"description\": \"Name of this source.\",\n \"type\": \"string\"\n },\n \"namespace\": {\n \"description\": \"Namespace of this source.\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"name\",\n \"kind\"\n ],\n \"type\": \"object\"\n },\n \"type\": \"array\"\n }\n },\n \"required\": [\n \"destination\",\n \"rules\",\n \"sources\"\n ],\n \"title\": \"Traffic Target\",\n \"type\": \"object\"\n}"} \ No newline at end of file From a26d322c9cd7f9b1b30d3326a72cb87dfaf55111 Mon Sep 17 00:00:00 2001 From: Ashish Tiwari Date: Mon, 26 Dec 2022 19:42:21 +0530 Subject: [PATCH 3/3] externalize meshmodel json Signed-off-by: Ashish Tiwari --- build/config.go | 21 +++++++++++++-------- build/meshmodel_metadata.json | 8 ++++++++ 2 files changed, 21 insertions(+), 8 deletions(-) create mode 100644 build/meshmodel_metadata.json diff --git a/build/config.go b/build/config.go index bb6944a..e045404 100644 --- a/build/config.go +++ b/build/config.go @@ -1,7 +1,9 @@ package build import ( + "encoding/json" "fmt" + "io" "os" "path/filepath" "strings" @@ -21,14 +23,7 @@ var MeshModelPath string var AllVersions []string var CRDNames []string -var meshmodelmetadata = map[string]interface{}{ - "Primary Color": "#9D0FB0", - "Secondary Color": "#e281f0", - "Shape": "circle", - "Logo URL": "", - "SVG_Color": "", - "SVG_White": "", -} +var meshmodelmetadata = make(map[string]interface{}) var MeshModelConfig = adapter.MeshModelConfig{ //Move to build/config.go Category: "Orchestration & Management", @@ -56,6 +51,16 @@ func NewConfig(version string) manifests.Config { func init() { wd, _ := os.Getwd() + f, _ := os.Open("./build/meshmodel_metadata.json") + defer func() { + err := f.Close() + if err != nil { + fmt.Println(err.Error()) + } + }() + byt, _ := io.ReadAll(f) + + _ = json.Unmarshal(byt, &meshmodelmetadata) WorkloadPath = filepath.Join(wd, "templates", "oam", "workloads") MeshModelPath = filepath.Join(wd, "templates", "meshmodel", "components") AllVersions, _ = utils.GetLatestReleaseTagsSorted("traefik", "mesh") diff --git a/build/meshmodel_metadata.json b/build/meshmodel_metadata.json new file mode 100644 index 0000000..9d5cb08 --- /dev/null +++ b/build/meshmodel_metadata.json @@ -0,0 +1,8 @@ +{ + "Primary Color": "#9D0FB0", + "Secondary Color": "#e281f0", + "Shape": "circle", + "Logo URL": "", + "SVG_Color": "", + "SVG_White": "" +} \ No newline at end of file