cloud-8.x-2.0-beta1/modules/cloud_service_providers/k8s/k8s.install
modules/cloud_service_providers/k8s/k8s.install
<?php
/**
* @file
* Install and updates for k8s.
*/
use Drupal\Core\Field\BaseFieldDefinition;
/**
* Implements hook_uninstall().
*/
function k8s_uninstall() {
$entity_type_manager = \Drupal::entityTypeManager();
// Delete all k8s cloud service providers.
$entities = $entity_type_manager
->getStorage('cloud_config')
->loadByProperties(
[
'type' => 'k8s',
]
);
$entity_type_manager->getStorage('cloud_config')->delete($entities);
// Delete the k8s entity type.
$content_type = $entity_type_manager
->getStorage('cloud_config_type')
->load('k8s');
$content_type->delete();
// Rebuild caches.
drupal_flush_all_caches();
}
/**
* Add entity type k8s_node and view k8s_node.
*/
function k8s_update_8201() {
// Add entity type k8s_node.
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_node');
$definition_update_manager->installEntityType($entity_type);
// Add view k8s_node.
$files = [
'views.view.k8s_node.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Add entity type k8s_node and view k8s_node.
*/
function k8s_update_8202() {
// Add entity type k8s_node.
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_node');
$definition_update_manager->uninstallEntityType($entity_type);
$definition_update_manager->installEntityType($entity_type);
// Add view k8s_node.
$files = [
'views.view.k8s_node.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Add entity type k8s_namespace and view k8s_namespace.
*/
function k8s_update_8203() {
// Add entity type k8s_namespace.
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_namespace');
$definition_update_manager->installEntityType($entity_type);
// Add view k8s_namespace.
$files = [
'views.view.k8s_namespace.yml',
'system.action.k8s_namespace_delete_action.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Add entity type k8s_pod and view k8s_pod.
*/
function k8s_update_8204() {
// Add entity type k8s_pod.
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_pod');
$definition_update_manager->installEntityType($entity_type);
// Add view k8s_pod.
$files = [
'views.view.k8s_pod.yml',
'system.action.k8s_pod_delete_action.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Add namespace filter to view k8s_pod.
*/
function k8s_update_8205() {
// Update view k8s_pod.
$files = [
'views.view.k8s_pod.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Add entity type k8s_deployment and view k8s_deployment.
*/
function k8s_update_8206() {
// Add entity type k8s_deployment.
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_deployment');
$definition_update_manager->installEntityType($entity_type);
// Add view k8s_deployment.
$files = [
'views.view.k8s_deployment.yml',
'system.action.k8s_deployment_delete_action.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Add entity type k8s_service and view k8s_service.
*/
function k8s_update_8207() {
// Add entity type k8s_service.
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_service');
$definition_update_manager->uninstallEntityType($entity_type);
$definition_update_manager->installEntityType($entity_type);
// Add view k8s_service.
$files = [
'views.view.k8s_service.yml',
'system.action.k8s_service_delete_action.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Update view k8s_pod.
*/
function k8s_update_8208() {
// Update view k8s_pod.
$files = [
'views.view.k8s_pod.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Add entity type k8s_cron_job and view k8s_cron_job.
*/
function k8s_update_8209() {
// Add entity type k8s_cron_job.
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_cron_job');
$definition_update_manager->uninstallEntityType($entity_type);
$definition_update_manager->installEntityType($entity_type);
// Add view k8s_cron_job.
$files = [
'views.view.k8s_cron_job.yml',
'system.action.k8s_cron_job_delete_action.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Add entity type k8s_job and view k8s_job.
*/
function k8s_update_8210() {
// Add entity type k8s_job.
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_job');
$definition_update_manager->uninstallEntityType($entity_type);
$definition_update_manager->installEntityType($entity_type);
// Add view k8s_job.
$files = [
'views.view.k8s_job.yml',
'system.action.k8s_job_delete_action.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Update both field_api_server and field_tokenn.
*/
function k8s_update_8212() {
// Update fields.
$files = [
'field.field.cloud_config.k8s.field_api_server.yml',
'field.field.cloud_config.k8s.field_token.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Add entity type k8s_resource_quota and view k8s_resource_quota.
*/
function k8s_update_8213() {
// Add entity type k8s_resource_quota.
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_resource_quota');
$definition_update_manager->uninstallEntityType($entity_type);
$definition_update_manager->installEntityType($entity_type);
// Add view k8s_resource_quota.
$files = [
'views.view.k8s_resource_quota.yml',
'system.action.k8s_resource_quota_delete_action.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Add fields about metrics to k8s_node.
*/
function k8s_update_8214() {
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$fields = [];
$fields['cpu_capacity'] = BaseFieldDefinition::create('float')
->setLabel(t('CPU (Capacity)'))
->setDescription(t('The cpu capacity of the node.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'string',
'weight' => -5,
]);
$fields['cpu_request'] = BaseFieldDefinition::create('float')
->setLabel(t('CPU (Request)'))
->setDescription(t('The requested cpu.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'string',
'weight' => -5,
]);
$fields['cpu_limit'] = BaseFieldDefinition::create('float')
->setLabel(t('CPU (Limit)'))
->setDescription(t('The limited cpu.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'string',
'weight' => -5,
]);
$fields['memory_capacity'] = BaseFieldDefinition::create('float')
->setLabel(t('Memory (Capacity)'))
->setDescription(t('The memory capacity of the node.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'memory_formatter',
'weight' => -5,
]);
$fields['memory_request'] = BaseFieldDefinition::create('float')
->setLabel(t('Memory (Request)'))
->setDescription(t('The requested memory.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'memory_formatter',
'weight' => -5,
]);
$fields['memory_limit'] = BaseFieldDefinition::create('float')
->setLabel(t('Memory (Limit)'))
->setDescription(t('The limited memory.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'memory_formatter',
'weight' => -5,
]);
$fields['pods_capacity'] = BaseFieldDefinition::create('integer')
->setLabel(t('Pods (Capacity)'))
->setDescription(t('The pods capacity of the node.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'string',
'weight' => -5,
]);
$fields['pods_allocation'] = BaseFieldDefinition::create('integer')
->setLabel(t('Pods (Allocation)'))
->setDescription(t('The pods allocated.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'string',
'weight' => -5,
]);
foreach ($fields as $name => $field) {
$definition_update_manager->installFieldStorageDefinition(
$name,
'k8s_node',
'k8s',
$field
);
}
// Update view k8s_node.
$files = [
'views.view.k8s_node.yml',
];
cloud_update_yml_definitions($files, 'k8s');
drupal_flush_all_caches();
// Update k8s nodes.
$config_entities = \Drupal::service('plugin.manager.cloud_config_plugin')
->loadConfigEntities('k8s');
$k8s_service = \Drupal::service('k8s');
foreach ($config_entities as $config_entity) {
$k8s_service->setCloudContext($config_entity->getCloudContext());
$k8s_service->updateNodesWithoutBatch();
}
}
/**
* Add fields about metrics to k8s_pod.
*/
function k8s_update_8215() {
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$fields = [];
$fields['cpu_request'] = BaseFieldDefinition::create('float')
->setLabel(t('CPU (Request)'))
->setDescription(t('The requested cpu.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'string',
'weight' => -5,
]);
$fields['cpu_limit'] = BaseFieldDefinition::create('float')
->setLabel(t('CPU (Limit)'))
->setDescription(t('The limited cpu.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'string',
'weight' => -5,
]);
$fields['cpu_usage'] = BaseFieldDefinition::create('float')
->setLabel(t('CPU (Usage)'))
->setDescription(t('The requested cpu.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'string',
'weight' => -5,
]);
$fields['memory_request'] = BaseFieldDefinition::create('float')
->setLabel(t('Memory (Request)'))
->setDescription(t('The requested memory.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'memory_formatter',
'weight' => -5,
]);
$fields['memory_limit'] = BaseFieldDefinition::create('float')
->setLabel(t('Memory (Limit)'))
->setDescription(t('The limited memory.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'memory_formatter',
'weight' => -5,
]);
$fields['memory_usage'] = BaseFieldDefinition::create('float')
->setLabel(t('Memory (Usage)'))
->setDescription(t('The memory usage.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'memory_formatter',
'weight' => -5,
]);
foreach ($fields as $name => $field) {
$definition_update_manager->installFieldStorageDefinition(
$name,
'k8s_pod',
'k8s',
$field
);
}
// Update view k8s_pod.
$files = [
'views.view.k8s_pod.yml',
];
cloud_update_yml_definitions($files, 'k8s');
drupal_flush_all_caches();
// Update k8s pods.
$config_entities = \Drupal::service('plugin.manager.cloud_config_plugin')
->loadConfigEntities('k8s');
$k8s_service = \Drupal::service('k8s');
foreach ($config_entities as $config_entity) {
$k8s_service->setCloudContext($config_entity->getCloudContext());
$k8s_service->updatePodsWithoutBatch();
}
}
/**
* Add detail field to k8s_node and k8s_namespace.
*/
function k8s_update_8216() {
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$field_detail = BaseFieldDefinition::create('string_long')
->setLabel(t('Detail'))
->setDescription(t('Node detail.'))
->setRequired(TRUE)
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'pre_string_formatter',
'weight' => -5,
]);
$definition_update_manager->installFieldStorageDefinition(
'detail',
'k8s_node',
'k8s',
$field_detail
);
$field_detail = BaseFieldDefinition::create('string_long')
->setLabel(t('Detail'))
->setDescription(t('Namespace detail.'))
->setRequired(TRUE)
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'pre_string_formatter',
'weight' => -5,
]);
$definition_update_manager->installFieldStorageDefinition(
'detail',
'k8s_namespace',
'k8s',
$field_detail
);
drupal_flush_all_caches();
// Update k8s namespace.
$config_entities = \Drupal::service('plugin.manager.cloud_config_plugin')
->loadConfigEntities('k8s');
$k8s_service = \Drupal::service('k8s');
foreach ($config_entities as $config_entity) {
$k8s_service->setCloudContext($config_entity->getCloudContext());
$k8s_service->updateNodesWithoutBatch();
$k8s_service->updateNamespacesWithoutBatch();
}
}
/**
* Add fields about metrics to k8s_node.
*/
function k8s_update_8217() {
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$fields = [];
$fields['cpu_usage'] = BaseFieldDefinition::create('float')
->setLabel(t('CPU (Usage)'))
->setDescription(t('The requested cpu.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'string',
'weight' => -5,
]);
$fields['memory_usage'] = BaseFieldDefinition::create('float')
->setLabel(t('Memory (Usage)'))
->setDescription(t('The memory usage.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'memory_formatter',
'weight' => -5,
]);
foreach ($fields as $name => $field) {
$definition_update_manager->installFieldStorageDefinition(
$name,
'k8s_node',
'k8s',
$field
);
}
// Update view k8s_node.
$files = [
'views.view.k8s_node.yml',
];
cloud_update_yml_definitions($files, 'k8s');
drupal_flush_all_caches();
// Update k8s pods.
$config_entities = \Drupal::service('plugin.manager.cloud_config_plugin')
->loadConfigEntities('k8s');
$k8s_service = \Drupal::service('k8s');
foreach ($config_entities as $config_entity) {
$k8s_service->setCloudContext($config_entity->getCloudContext());
$k8s_service->updatePodsWithoutBatch();
}
}
/**
* Install k8s cloud server template.
*/
function k8s_update_8218() {
$files = [
'cloud.cloud_server_template_type.k8s.yml',
'field.storage.cloud_server_template.field_detail.yml',
'field.storage.cloud_server_template.field_namespace.yml',
'field.storage.cloud_server_template.field_object.yml',
'core.entity_form_display.cloud_server_template.k8s.default.yml',
'core.entity_view_display.cloud_server_template.k8s.default.yml',
'field.field.cloud_server_template.k8s.field_detail.yml',
'field.field.cloud_server_template.k8s.field_namespace.yml',
'field.field.cloud_server_template.k8s.field_object.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Add configuration k8s_js_refresh_interval and update view k8s_profile.
*/
function k8s_update_8219() {
$config_factory = \Drupal::configFactory();
$config = $config_factory->getEditable('k8s.settings');
$config->set('k8s_js_refresh_interval', 10);
$config->save();
$files = [
'views.view.k8s_profile.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Add field creation_yaml to k8s_pod and k8s_deployment.
*/
function k8s_update_8220() {
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$field = BaseFieldDefinition::create('string_long')
->setLabel(t('Creation YAML'))
->setDescription(t('The YAML content was used to create the entity.'))
->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'pre_string_formatter',
'weight' => -5,
]);
$entity_types = [
'k8s_pod',
'k8s_deployment',
];
foreach ($entity_types as $entity_type) {
$definition_update_manager->installFieldStorageDefinition(
'creation_yaml',
$entity_type,
'k8s',
$field
);
}
}
/**
* Change sort setting of views.
*/
function k8s_update_8221() {
$files = [
'views.view.k8s_deployment.yml',
'views.view.k8s_pod.yml',
'views.view.k8s_service.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Add block for node in k8s pod view.
*/
function k8s_update_8222() {
cloud_update_yml_definitions(['views.view.k8s_pod.yml'], 'k8s');
}
/**
* Add entity type k8s_limit_range and view k8s_limit_range.
*/
function k8s_update_8223() {
// Add entity type k8s_limit_range.
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_limit_range');
$definition_update_manager->uninstallEntityType($entity_type);
$definition_update_manager->installEntityType($entity_type);
// Add view k8s_limit_range.
$files = [
'views.view.k8s_limit_range.yml',
'system.action.k8s_limit_range_delete_action.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Add entity type k8s_replica_set and view k8s_replica_set.
*/
function k8s_update_8224() {
// Add entity type k8s_replica_set.
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_replica_set');
$definition_update_manager->installEntityType($entity_type);
// Add view k8s_replica_set.
$files = [
'views.view.k8s_replica_set.yml',
'system.action.k8s_replica_set_delete_action.yml',
];
cloud_update_yml_definitions($files, 'k8s');
drupal_flush_all_caches();
}
/**
* Add entity type k8s_secret and view k8s_secret.
*/
function k8s_update_8225() {
// Add entity type k8s_secret.
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_secret');
$definition_update_manager->uninstallEntityType($entity_type);
$definition_update_manager->installEntityType($entity_type);
// Add view k8s_secret.
$files = [
'views.view.k8s_secret.yml',
'system.action.k8s_secret_delete_action.yml',
];
cloud_update_yml_definitions($files, 'k8s');
drupal_flush_all_caches();
}
/**
* Add fields about Locaion to cloud_config.
*/
function k8s_update_8226() {
// Add new fields and update entity cloud_config.k8s.
$files = [
'field.field.cloud_config.k8s.field_location_country.yml',
'field.field.cloud_config.k8s.field_location_city.yml',
'field.field.cloud_config.k8s.field_location_latitude.yml',
'field.field.cloud_config.k8s.field_location_longitude.yml',
'core.entity_form_display.cloud_config.k8s.default.yml',
'core.entity_view_display.cloud_config.k8s.default.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
/**
* Add entity type k8s_config_map and view k8s_config_map.
*/
function k8s_update_8227() {
// Add entity type k8s_config_map.
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_config_map');
$definition_update_manager->uninstallEntityType($entity_type);
$definition_update_manager->installEntityType($entity_type);
// Add view k8s_config_map.
$files = [
'views.view.k8s_config_map.yml',
'system.action.k8s_config_map_delete_action.yml',
];
cloud_update_yml_definitions($files, 'k8s');
drupal_flush_all_caches();
}
/**
* Add entity type k8s_network_policy and view k8s_network_policy.
*/
function k8s_update_8228() {
// Add entity type k8s_network_policy.
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_network_policy');
$definition_update_manager->uninstallEntityType($entity_type);
$definition_update_manager->installEntityType($entity_type);
// Add view k8s_network_policy.
$files = [
'views.view.k8s_network_policy.yml',
'system.action.k8s_network_policy_delete_action.yml',
];
cloud_update_yml_definitions($files, 'k8s');
}
