Skip to content

Commit

Permalink
Add parse_annotations method and pod annotation saving test
Browse files Browse the repository at this point in the history
  • Loading branch information
liu-samuel committed Jul 3, 2024
1 parent 5f79a06 commit a627b21
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,7 @@ def parse_node(node)

labels = parse_labels(node)
tags = map_labels('ContainerNode', labels)
annotations = parse_annotations(node)

new_result.merge!(
:identity_infra => node.spec.providerID,
Expand Down Expand Up @@ -360,7 +361,7 @@ def parse_node(node)

container_conditions(container_node, container_conditions)
node_computer_systems(container_node, computer_system)
custom_attributes(container_node, :labels => labels)
custom_attributes(container_node, :labels => labels, :annotations => annotations)
taggings(container_node, tags)

container_node
Expand Down Expand Up @@ -398,9 +399,10 @@ def parse_service(service)
# Typically this happens for kubernetes services
new_result[:ems_ref] = "#{new_result[:namespace]}_#{new_result[:name]}" if new_result[:ems_ref].nil?

labels = parse_labels(service)
tags = map_labels('ContainerService', labels)
selector_parts = parse_selector_parts(service)
labels = parse_labels(service)
tags = map_labels('ContainerService', labels)
selector_parts = parse_selector_parts(service)
annotations = parse_annotations(service)

new_result.merge!(
:container_project => lazy_find_project(:name => new_result[:namespace]),
Expand Down Expand Up @@ -429,7 +431,7 @@ def parse_service(service)
container_service = persister.container_services.build(new_result)

container_service_port_configs(container_service, container_service_port_configs)
custom_attributes(container_service, :labels => labels, :selectors => selector_parts)
custom_attributes(container_service, :labels => labels, :selectors => selector_parts, :annotations => annotations)
taggings(container_service, tags)

container_service
Expand Down Expand Up @@ -496,6 +498,7 @@ def parse_pod(pod)

labels = parse_labels(pod)
tags = map_labels('ContainerGroup', labels)
annotations = parse_annotations(pod)

node_selector_parts = parse_node_selector_parts(pod)
container_volumes = parse_volumes(pod)
Expand All @@ -505,7 +508,7 @@ def parse_pod(pod)
containers(container_group, containers)
container_conditions(container_group, container_conditions)
container_volumes(container_group, container_volumes)
custom_attributes(container_group, :labels => labels, :node_selectors => node_selector_parts)
custom_attributes(container_group, :labels => labels, :node_selectors => node_selector_parts, :annotations => annotations)
taggings(container_group, tags)

container_group
Expand Down Expand Up @@ -740,6 +743,10 @@ def parse_labels(entity)
parse_identifying_attributes(entity.metadata.labels, 'labels')
end

def parse_annotations(entity)
parse_identifying_attributes(entity.metadata.annotations, 'annotations')
end

def parse_selector_parts(entity)
parse_identifying_attributes(entity.spec.selector, 'selectors')
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,23 +58,23 @@ def initialize_container_conditions
def initialize_custom_attributes
%i(container_nodes
container_projects).each do |name|
add_custom_attributes(name, %w(labels additional_attributes))
add_custom_attributes(name, %w(labels additional_attributes annotations))
end

%i(container_groups).each do |name|
add_custom_attributes(name, %w(labels node_selectors))
add_custom_attributes(name, %w(labels node_selectors annotations))
end

%i(container_replicators
container_services).each do |name|
add_custom_attributes(name, %w(labels selectors))
add_custom_attributes(name, %w(labels selectors annotations))
end

%i(container_builds
container_build_pods
container_routes
container_templates).each do |name|
add_custom_attributes(name, %w(labels))
add_custom_attributes(name, %w(labels annotations))
end
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,9 @@ def assert_specific_container_group(expected_extra_tags: [])
:dns_policy => "ClusterFirst",
:phase => "Running"
)
expect(@containergroup.annotations).to contain_exactly(
annotation_with_name("kubernetes.io/created-by")
)
expect(@containergroup.labels).to contain_exactly(
label_with_name_value("name", "heapster")
)
Expand Down Expand Up @@ -407,6 +410,14 @@ def label_with_name_value(name, value)
)
end

def annotation_with_name(name)
have_attributes(
:section => 'annotations',
:source => 'kubernetes',
:name => name
)
end

def tag_in_category_with_description(category, description)
satisfy { |tag| tag.category == category && tag.classification.description == description }
end
Expand Down

0 comments on commit a627b21

Please sign in to comment.