Kaynak etiketleri

Kaynak etiketleri

Çeşitli sanal ağ kaynakları, harici sistemler veya Ağ hizmet API’sinin diğer istemcileri tarafından kullanılmak üzere etiketleri destekler.

Şu anda desteklenen kaynaklar şunlardır:

  • ağlar
  • altağlar
  • altağ havuzları
  • bağlantı noktaları
  • yönlendiriciler

kullanım durumları

Aşağıdaki kullanım durumları, ağlara etiket eklemeyi ifade eder, ancak desteklenen herhangi bir Ağ hizmeti kaynağı için de aynı şey geçerli olabilir:

  1. Farklı OpenStack konumlarındaki farklı ağları mantıksal olarak aynı ağa (çoklu site OpenStack için) eşleme olanağı.
  2. Karışık ortamlarda farklı yönetim/orkestrasyon sistemlerinden gelen kimlikleri OpenStack ağlarına eşleme olanağı. Örneğin, Kuryr projesinde Docker ağ kimliği Neutron ağ kimliğine eşlenir.
  3. Etiketleri kurulum araçları ile kaldırabilme.
  4. Sağlayıcı şebekeleri hakkındaki bilgileri etiketleme (örneğin yüksek bant genişliği, düşük gecikme süresi vb.).

Etikete göre filtreleme

API, GET /v2.0/networks API’sinin aranmasına/filtrelenmesine izin verir. Aşağıdaki sorgu parametreleri desteklenmektedir:

  • tags
  • tags-any
  • not-tags
  • not-tags-any

Tek bir etiketi olan ağların listesini istemek için, tags argümanı istenen etiket adına ayarlanmalıdır. Örnek:

GET /v2.0/networks?tags=red

İki veya daha fazla etikete sahip olan ağların listesini istemek için, tags argümanı virgüllerle ayrılmış etiketlerin listesine ayarlanmalıdır. Bu durumda, bir ağın sorgu sonucuna dahil edilmesi için verilen etiketler mutlaka mevcut olmalıdır. “kırmızı” ve “mavi” etiketleri olan ağları döndüren örnek:

GET /v2.0/networks?tags=red,blue

Verilen etiketlerden bir veya daha fazlasına sahip olan ağların listesini istemek için, tags-any argümanı etiketler listesine virgülle ayrılmış olarak ayarlanmalıdır. Bu durumda, verilen etiketlerden biri mevcut olduğu sürece, ağ sorgu sonucuna dahil edilir. “kırmızı” veya “mavi” etiketi olan ağları geri getiren örnek

GET /v2.0/networks?tags-any=red,blue

Bir veya daha fazla etiket içermeyen ağların listesini talep etmek için, not-tags argümanı etiketler listesine virgülle ayrılmış olarak ayarlanmalıdır. Bu durumda, yalnızca verilen etiketlerden herhangi birine sahip olmayan ağlar, sorgu sonuçlarına dahil edilir. “kırmızı” veya “mavi” etiketi olmayan ağları döndüren örnek:

GET /v2.0/networks?not-tags=red,blue

Etiket listesinden en az bir tanesine sahip olmayan ağların listesini talep etmek için, not-tags-any argümanı etiketler listesine virgülle ayrılmış olarak ayarlanmalıdır. Bu durumda, yalnızca verilen etiketlerden en az birine sahip olmayan ağlar, sorgu sonucuna dahil edilir. “kırmızı” etiketine sahip olmayan ağları döndüren örnek veya “mavi” etiketine sahip olmadığınız örnek:

GET /v2.0/networks?not-tags-any=red,blue

tags, tags-any, not-tags, ve not-tags-any öznitelikleri daha karmaşık sorgular oluşturmak için kombine edilebilir. Örnek:

GET /v2.0/networks?tags=red,blue&tags-any=green,orange

Yukarıdaki örnek, “kırmızı” ve “mavi” etiketleri ve ayrıca “yeşil” ve “turuncu” dan en az birini içeren ağları döndürür.

Karmaşık sorgular çelişkili parametrelere sahip olabilir. Örnek:

GET /v2.0/networks?tags=blue&not-tags=blue

Bu durumda, Ağ hizmetinin bu ağları bulmasına izin vermeliyiz. Açıkçası, böyle bir ağ yok ve hizmet boş bir liste döndürecektir.

Kullanıcı iş akışı

Kaynağa bir etikey ekle:

$ neutron tag-add --resource-type network --resource ab442634-1cc9-49e5-bd49-0dac9c811f69 --tag red
$ neutron net-show net
+-------------------------+--------------------------------------+
| Field                   | Value                                |
+-------------------------+--------------------------------------+
| admin_state_up          | True                                 |
| availability_zone_hints |                                      |
| availability_zones      |                                      |
| id                      | ab442634-1cc9-49e5-bd49-0dac9c811f69 |
| ipv4_address_scope      |                                      |
| ipv6_address_scope      |                                      |
| mtu                     | 1450                                 |
| name                    | net                                  |
| port_security_enabled   | True                                 |
| router:external         | False                                |
| shared                  | False                                |
| status                  | ACTIVE                               |
| subnets                 |                                      |
| tags                    | red                                  |
| tenant_id               | e6710680bfd14555891f265644e1dd5c     |
+-------------------------+--------------------------------------+

Bir kaynaktan bir etiketi kaldır:

$ neutron tag-remove --resource-type network --resource ab442634-1cc9-49e5-bd49-0dac9c811f69 --tag red
$ neutron net-show net
+-------------------------+--------------------------------------+
| Field                   | Value                                |
+-------------------------+--------------------------------------+
| admin_state_up          | True                                 |
| availability_zone_hints |                                      |
| availability_zones      |                                      |
| id                      | ab442634-1cc9-49e5-bd49-0dac9c811f69 |
| ipv4_address_scope      |                                      |
| ipv6_address_scope      |                                      |
| mtu                     | 1450                                 |
| name                    | net                                  |
| port_security_enabled   | True                                 |
| router:external         | False                                |
| shared                  | False                                |
| status                  | ACTIVE                               |
| subnets                 |                                      |
| tags                    |                                      |
| tenant_id               | e6710680bfd14555891f265644e1dd5c     |
+-------------------------+--------------------------------------+

Kaynak üzerindeki tüm etiketleri değiştir:

$ neutron tag-replace --resource-type network --resource ab442634-1cc9-49e5-bd49-0dac9c811f69 --tag red --tag blue
$ neutron net-show net
+-------------------------+--------------------------------------+
| Field                   | Value                                |
+-------------------------+--------------------------------------+
| admin_state_up          | True                                 |
| availability_zone_hints |                                      |
| availability_zones      |                                      |
| id                      | ab442634-1cc9-49e5-bd49-0dac9c811f69 |
| ipv4_address_scope      |                                      |
| ipv6_address_scope      |                                      |
| mtu                     | 1450                                 |
| name                    | net                                  |
| port_security_enabled   | True                                 |
| router:external         | False                                |
| shared                  | False                                |
| status                  | ACTIVE                               |
| subnets                 |                                      |
| tags                    | red                                  |
|                         | blue                                 |
| tenant_id               | e6710680bfd14555891f265644e1dd5c     |
+-------------------------+--------------------------------------+

Bir kaynaktan etiketleri temizle:

$ neutron tag-remove --resource-type network --resource ab442634-1cc9-49e5-bd49-0dac9c811f69 --all
$ neutron net-show net
+-------------------------+--------------------------------------+
| Field                   | Value                                |
+-------------------------+--------------------------------------+
| admin_state_up          | True                                 |
| availability_zone_hints |                                      |
| availability_zones      |                                      |
| id                      | ab442634-1cc9-49e5-bd49-0dac9c811f69 |
| ipv4_address_scope      |                                      |
| ipv6_address_scope      |                                      |
| mtu                     | 1450                                 |
| name                    | net                                  |
| port_security_enabled   | True                                 |
| router:external         | False                                |
| shared                  | False                                |
| status                  | ACTIVE                               |
| subnets                 |                                      |
| tags                    |                                      |
| tenant_id               | e6710680bfd14555891f265644e1dd5c     |
+-------------------------+--------------------------------------+

Ağlardaki etiket filtreleri ile kaynakların listesini alın. Ağlar: “kırmızı” etiketli test-net1, “kırmızı” ve “mavi” etiketli test-net2, “kırmızı”, “mavi” ve “yeşil” etiketli test-net3 ve “yeşil” etiketli test-net4.

tags filtresiyle kaynak listesini çekin:

$ neutron net-list --tags red,blue
+--------------------------------------+-----------+---------+
| id                                   | name      | subnets |
+--------------------------------------+-----------+---------+
| 8ca3b9ed-f578-45fa-8c44-c53f13aec05a | test-net3 |         |
| e736e63d-42e4-4f4c-836c-6ad286ffd68a | test-net2 |         |
+--------------------------------------+-----------+---------+

tags-any filtresiyle kaynak listesini çekin:

$ neutron net-list --tags-any red,blue
+--------------------------------------+-----------+---------+
| id                                   | name      | subnets |
+--------------------------------------+-----------+---------+
| 30491224-3855-431f-a688-fb29df004d82 | test-net1 |         |
| 8ca3b9ed-f578-45fa-8c44-c53f13aec05a | test-net3 |         |
| e736e63d-42e4-4f4c-836c-6ad286ffd68a | test-net2 |         |
+--------------------------------------+-----------+---------+

not-tags filtresiyle kaynak listesini çekin:

$ neutron net-list --not-tags red,blue
+--------------------------------------+-----------+---------+
| id                                   | name      | subnets |
+--------------------------------------+-----------+---------+
| 30491224-3855-431f-a688-fb29df004d82 | test-net1 |         |
| cdb3ed08-ca63-4090-ba12-30b366372993 | test-net4 |         |
+--------------------------------------+-----------+---------+

not-tags-any filtresiyle kaynak listesini çekin:

$ neutron net-list --not-tags-any red,blue
+--------------------------------------+-----------+---------+
| id                                   | name      | subnets |
+--------------------------------------+-----------+---------+
| cdb3ed08-ca63-4090-ba12-30b366372993 | test-net4 |         |
+--------------------------------------+-----------+---------+

Kısıtlamalar

Kaynakları virgül içeren bir etiketle filtrelemek desteklenmiyor. Bu nedenle, kaynaklara böyle bir etiket adı koymayın.

Gelecek destek

Gelecekteki sürümlerde, Ağ hizmeti, ek kaynaklar için etiketleri ayarlamayı destekleyebilir.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.