Tumgik
#consul cluster
akrnd085 · 5 months
Text
Comprehensive Guide To Setting Up And Utilizing Consul Cluster
Tumblr media
Comprehensive Guide To Setting Up And Utilizing Consul Cluster
  In a distributed system, managing service discovery and configuration can be a challenging task. This is where Consul, a powerful tool from HashiCorp, comes into play. Consul provides a distributed service mesh to connect services seamlessly and manage their configurations. In this article, we will explore Consul Cluster in detail and learn how to set up and utilize it effectively.
What is Consul? Consul is a distributed service mesh solution designed to connect, discover, and secure services across various platforms and environments. It offers a robust set of features, including service discovery, distributed key-value store, health checks, and service segmentation. With Consul, developers can build resilient and scalable applications by seamlessly connecting services and managing their configurations.
Consul Cluster A Consul Cluster is a group of Consul agent instances running together in a coordinated manner. Each agent operates as a member of the cluster, participating in leader election to ensure high availability and fault tolerance. The Consul Cluster distributes the workload among its nodes and maintains a replicated state across all agents.
Setting up a Consul Cluster Setting up a Consul Cluster involves the following steps: 1. Installation: The first step is to install Consul on each node that will be part of the cluster. Consul provides binaries for various operating systems, and installation instructions can be found in the official documentation.
2. Configuration: Once Consul is installed, the next step is to configure the agents. Consul uses a single configuration file or command-line flags to specify its settings. The configuration includes parameters such as data directory, cluster name, network settings, and other optional parameters.
3. Bootstrap: Consul cluster requires a bootstrap process to initialize the initial state. To bootstrap a cluster, one of the agents needs to be designated as the server, while the rest are considered as clients. The server acts as the leader and is responsible for cluster management. The bootstrap process can be initiated by starting the first server agent with the `-bootstrap-expect` flag, specifying the number of expected servers in the cluster.
4. Joining the Cluster: To join a Consul Cluster, the agent needs to know the IP address or hostname of at least one existing member in the cluster. This information can be passed through the configuration file or as a command-line option while starting the agent. When an agent joins the cluster, it automatically synchronizes its state with other members and participates in leader election.
5. Leader Election and Coordination: Consul Cluster employs a consensus-based algorithm known as Raft to elect a leader among server agents. The leader is responsible for making decisions and coordinating cluster activities. In the event of a leader failure, a new leader is elected from the available server agents using the Raft algorithm.
Utilizing Consul Cluster Features Now that we have a Consul Cluster up and running, let’s explore some of its key features:
1. Service Discovery: Consul provides a decentralized service discovery mechanism, which allows services to be registered and discovered dynamically. Services can be registered with Consul using DNS, HTTP, or gRPC interfaces. Clients can query Consul to retrieve the current list of available services and their associated endpoints.
2. Health Checks: Consul offers powerful health checking capabilities, ensuring that services are operating correctly. Agents can periodically perform checks on registered services and report their status to Consul. This information is used to determine the health of services and take appropriate actions, such as failing over to a healthy instance.
3. Distributed Key-Value Store: Consul includes a distributed key-value store, which can be used as a centralized configuration store. Applications can read and write key-value pairs from Consul dynamically, enabling runtime configuration updates without the need for application restarts. This feature is especially useful in dynamic and microservice-oriented environments.
4. Service Segmentation: Consul enables service segmentation by providing fine-grained access control policies. It allows administrators to define rules based on service names, tags, or other attributes. This helps in implementing security measures and isolating services based on access requirements.
Example Code Snippet Here is an example code snippet to demonstrate how to register a service with Consul using the Consul Go API:Conclusion Consul Cluster is a powerful tool for managing service discovery and configurations in distributed systems. By setting up a Consul Cluster, developers can build resilient and scalable applications with ease. With features like service discovery, health checks, distributed key-value store, and service segmentation, Consul simplifies the management of services in a distributed environment. I hope this comprehensive guide has provided you with a solid understanding of Consul Cluster and how to utilize it effectively. When integrating Consul with Drupal, one powerful approach is to leverage Drupal Confi Split module. This module allows you to manage different configurations for various environments, such as development, staging, and production. By incorporating Configuration Split into your Consul setup, you can streamline the deployment process and ensure seamless transitions between environments.
0 notes
winter-leftovers · 6 months
Text
Til The End Of Eternity || Chapter twenty seven: Eternal Night, Eternal Knights (27/?)
(Douxie Casperan x f!reader)
Summary: Y/n is trying to figure her life out but is going to be hard since her brother is the new trollhunter and she is plagued by dreams and feelings she doesn’t understand.
Chapter Summary: Jim learns about Y/n and Morgana. The last battle begins. What’s going to take to save Arcadia?
Word count: 8026
Warnings: canon violence.
(Season 3 Episodes 12)
Song?:
Brother by Madds Buckley
I guess by Mitski
Daises by Chloe Ament
Previous - Next
Masterlist
Tumblr media
The sun had come out but its light didn’t enter the Lake’s residence, not after the group hung thick fabrics in front of every window and filled every crack where the sunlight could threaten to touch.
The war consul met for its first and final meeting. Nervous faces plagued the Lake’s living room as the queakes grew closer like the worry in Arcadia’s defender’s chests.
“I’ve taken the liberty of constricting a rudimentary model of Arcadia” Blinky put the final piece on the table: a milk carton.
Y/n laid against the wall that was directly behind Blinky. From her place, she could see her father fuming, ready to jump at the troll’s face. She threw many warning glances to her father, trying to convey in one simple look “Please, for the love of god, let him finish before you scream”
“If we focus our defensive efforts here, then when the Gumm-Gumms attack…” Blinky stopped at Merlin’s mumbles, looking up at the wizard, his eyes twitching in irritation “Do you have something to say?” Blinky crossed his arms.
“This is a waste of time!” The wizard threw the model to the floor.
Y/n pulled herself from the wall and straightened her back.
“You broke the museum. You philistine!” Blinky screamed as he lifted the carton of milk from the floor.
“Our focus is not Arcadia, it is Trollmarket. If we destroy Morgana, we stop the Eternal Night” Merlin and Blinky walked around the table like two angry dogs waiting for the other to attack first “The trollhunter and I must venture into Trollmarket”
“While Gunmar and Angor Rot turn Arcadia into an all-you-can-eat buffet?” Screamed back Blinky.
“For having six eyes, you are very short sighted. Defeating Gunmar is pointless if Morgana is…”
“And defeating Morgana is still pointless if everyone in Arcadia is dead!” Blinky hit the table as a new queake started “I don’t know my own strength” he pulled back, convinced that the tremors were a consequence of his anger.
“That was the third tremor today” observed Strickler.
“At this rate, I fear the Eternal Night will be upon us within the hour” Merlin nervously scratched his beard.
“The battle of the bands is on. The square will be packed” warned Claire, the image of all her friends running through her head.
“Everyone in Arcadia is there” screamed Toby “Well, anyone who’s cool, at least” he lifted his brow.
“So not you?” Y/n smirked.
“Hey!”
“On the bright side, with everyone clustered, we know where the Gumm-Gumms will strike first” Merlin pointed out, ignoring the teenagers spat.
“How is that the bright side?” Claire screamed.
“Trollmarket will be deserted and Morgana will be unprotected” Y/n explained her father’s logic.
“Gunmar and Angor Rot are my fight” Jim walked down the stairs “First, we’ll do what we can to clear Arcadia Square. So no one gets hurt” he sentenced.
“Actually, there’s no “we” until the night falls” Blinky put his hand on Jim’s shoulder, remembering his new disadvantage “In your current form, sunlight will burn you as much as any of us trolls”
“Maybe Merlin can whip up some SPF on million?” Toby looked at the wizard.
“Uh” Merlin looked at Y/n.
“We’ll go with the children and put a stop to this battle of the bands” Nomura stepped up.
“Then am I to fight Morgana alone?”
“I’ll go with you” Y/n grabbed her father’s arms, laying her head on his bicep “Just like last time” she looked up at him smiling.
“No” he looked down at her frowning “Do you think I don’t know what you've been doing?” he lifted his brow.
Y/n let go of him, slowly stepping back. She felt her lips shake but her eyes didn’t shift.
“I…I don’t know what are you talking about” her voice didn’t shake.
“I may have been asleep for a thousand years, Y/n but I haven’t slowed down” he looked down at his daughter and with a look he disarmed her “I want you far away from Morgana” his voice going deep enough to reach her bones.
Y/n nodded.
“I’ll go. Keep safe” Aaarrrgghh broke the silence.
“Thank you, oh, very, very, big one” Merlin thanked Aaarrrgghh the way he spoke to Y/n when she was child.
Y/n felt tears brewing at the bottom of her throat. She shook her head. This was not the time to fall down to an old wound.
“The moment of truth is upon us all. With fortitude and bravery, we can end the threat posed by Morgana, Gunmar and Angor Rot for all time!” Blinky said.
“Oh, yeah!” Toby screamed.
Y/n hung her bag in her closet with the steadiest hand she had in a while. An old practice found her after a thousand years, she never knew why but before something big she would clean up her room. Before the battle of Killahead exploded she cleaned her whole room leaving a small bouquet of wild flowers by her bed. Maybe, young Y/n thought it would make it easier on the grievers, maybe it relaxed her before facing death. She still didn’t know.
“Knock, knock” Jim knocked on the open door.
“Hey, Jim” Y/n closed the door of the closet and turned to her brother “What’s up?”
“Are you…are you okay?”
Y/n frowned
“Of course” she smiled “Are you?”
“Yeah. It’s just…” Jim followed Y/n through her room “What happened with your…is weird calling Merlin your father” he chuckled.
Y/n laughed.
“You can call him Merlin” she opened her night stand and pulled out a hunting knife.
“Woah. That’s bigger than the usual one” Jim looked closer at the knife.
“This one is from Camelot” she pulled out the knife out of the sheath revealing a shiny blade with an ‘A’ engraved at the top.
“Whoa” Jim got distracted by the old relic “It’s really old”
“Hey! It’s not older than me” Y/n put back the knife in the sheath and hid it away in the waist of her pants.
“Well…” Jim laughed.
“Shut up” she laughed back.
Their laughter died down, staying in silence, in each other's company like they did many times before: on the couch laying next to each other while some movie played in the background, while Y/n played piano and Jim laid on the floor listening to the music, sitting in the dining table doing homework until late hours of the night, while Jim cooked and he swatted her hand away from the ingredients, they stood there face to face for what could be the last time.
“Jim” Y/n whispered, scared that death may find them in the darkness of her room “I know we can’t promise to each other to survive” she looked up to his eyes. Since the transformation, her brother was taller than her. She put her hand in his cheek “Promise me that if something happened to me you’ll remember I had a long life and you’ll take care of mom”
Jim shook his head.
“You’ll be okay” he grabbed her hand “We’ll all be okay”
“Yeah” Y/n smiled. She envied her little brother’s optimism even before facing a war with the deadliest wizard and the angriest troll he actually believed they all would be okay “but in case you’re wrong…”
“I’m not” he insisted “Is this about what Merlin said? Is this about Morgana?”
Y/n blinked a tear away.
“No. No” She hugged him “Jim, my father just…likes to make a spectacle out of his anger”
Y/n pulled away. She saw the nervousness in his brother’s face. He was unconvinced.
“I guess this is the worst and the best time ever, huh?” She sighed, graving Jim’s hands, guiding him to the bed “Merlin is mad at me because…because I never forsake Morgana like the rest of the world did”
Jim frowned.
“I know…I know Morgana is evil, Jim, but I know her, she wasn’t always like this” she felt like she’s been repeating this explanation so much throughout the century that it’s been tattooed to her throat “When I was a kid she was the only other female sorcerer that I knew and she was kind and beautiful. She would play with me and braid my hair and she would make magic something fun and something to be proud of. Not a chore or something shameful” Y/n laughed remembering running in the forest hand in hand with Morgana, little golden lights surrounding them. She dried away the tears that fell without her permission “She was my older sister and I’ve been grieving that Morgana. Not the one that hurt Claire or the one that is about to do all this” Y/n squeezed Jim’s hand and looked deep into his eyes “I’m not going to betray you. Please, tell me you believe me”
“I know you’re not going to betray me” Jim nodded, a little offended that Y/n would think he would think that “You’re my sister”
A sob escaped from Y/n throat. She threw herself into Jim's arms one last time.
“And you’re my little brother. Always. Human, troll, gnome” she pulled back “ I don’t care. You can’t run from my love.
“I don’t know if I want to be a gnome” Jim chuckled.
“I’ll ask NotEnrique to teach me how to speak gnome just to talk with you” Y/n kissed his forehead.
Y/n phone vibrated it, distracting the siblings from their talk.
Errand boy 💙:
Where are you??
“Shit” whispered Y/n putting her phone back in her pocket “I guess our sappy time is up”
“I’ll see you later” Jim smiled.
“I’ll see you later” Y/n nodded.
Y/n walked alone to Arcana Square. Each step made her question the possibility of everyone’s survival. Last time, Douxie and her came out alive at the price of Morgana’s life and a century without her father. What would this war take?
The square was packed. Y/n found Douxie’s blue hair amongst the crowd like a ship finds a lighthouse in the night. She pushed between the sea of dancing sweaty teenagers to get to him.
“Doux” she grabbed his arm before the sea could separate them.
“There you are” He smiled, grabbing her hand.
“Here I am” she kissed his cheek.
Y/n chuckled when she saw Douxie’s blood rush to his cheeks. For a moment, they were two teenagers on a date and not two soldiers about to embark on their second war. The music stopped dropping the weight of reality back to her.
She got close to his ear and whispered:
“Doux, I…”
“Good job, whatever that was” Señol Uhl said to the microphone.
Y/n shook her head, distracted by the teacher’s words.
“What is it?” he turned, their noses almost touching.
“I came to warn you” she got closer, pressing their bodies together “Morgana is bringing the Eternal Night now” she took the knife out of her pants.
“What? What about M…”
“Doesn’t matter” she didn’t let him finish. If he didn’t ask, she couldn’t lie to him “Promise me you’ll be safe” she put the knife in his hands.
Douxie frowned:
“What?” He looked down “Why are you giving me Lancelot’s knife?”
“Because I’m scared, Hisirdoux” Y/n voice shook like the queakes that had been shaking Arcadia “Please”
“It’s okay” Douxie held her cheek “We’ll be okay” With his other hand he took the knife “I’ll take the knife and I’ll give it back to you in the daylight”
Y/n nodded, no words could escape out of the knot of her throat.
Douxie gave her a reassuring smile and softly kissed her lips. The warmth of his love reminded her of the home that always had existed inside him, the memories that were safe with him.
The feedback of the microphone made them pull apart. Claire stood on the stage, armor on, ready to announce to Arcadia that the world they know doesn’t exist anymore.
Douxie whistled, making Y/n and Claire turn. He gave the teenager two thumbs up, trying to give her the courage to sign her siren song.
“Great work” Douxie pointed to the armor.
Y/n bit her lip, looking down.
“Uhm, hello. Can I have your attention?” Claire asked the confused crowd. “Look, I’ve got something to say. Something about this town. Listen to me. Something dangerous is coming. Strange things happen in our town”
“You didn’t prepare a speech, didn’t you?” Douxie chuckled.
“Uh uh” Y/n smiled at Claire’s brave attempt of convincing Arcadia of the unbelievable.
“Tonight, when night falls, you need to run”
“You need to run” Mary sang, starting to play their instruments.
“Oh god” Y/n whispered, covering her face when she saw Claire keep begging the audience while her friends innocently made it part of the show.
An explosion was heard from behind the audience. Y/n didn’t need her magic to know it came from the canal. She turned and saw a tornado of black fire musicalised by the terrified screams and incredulous gasps of the people of Arcadia. The torch had been lit. The war had begun.
Y/n couldn’t take her eyes away from the smoke. The amount of power used for the spell sent a chill up her spine. She felt like her ship had sunk at sea and was only capable of observing the fire from underneath the water. Her feet were glued to the floor, her instinct was screaming to let herself drown, to run and hide under rock until everything cleared but her reason knew better.
She squeezed Douxie's hand, hoping his voice was able to pull her from the sea.
“Let’s get everyone to safety” he said.
Y/n turned. He was ready. Not a drop of nervousness or fear traveled through his eyes.
She nodded, saying a final prayer before letting go of his hand, running to opposite sides of the fight. In that moment, Y/n decided to not think about anything other than the danger she had in front of her because if she started to think about her friends with a Gumm-Gumms’ blade to their necks, she would lose her mind faster than the trolls blade could cut her in half.
Y/n stood next to her friends in front of a wall of Gumm-Gumms that double their size and number.
“Oh my gosh. This is happening” Toby tightened the grip on his war hammer. The Gumm-Gumms hit the spears rhythmically against the floor announcing their strike “Not another flying truck!” The boy screamed when he saw the truck appear from behind the impenetrable wall of Gumm-Gumms.
With a quick movement of her wrist, Y/n, prepared her staff to return the truck to the troll that sent it.
“Jim!!” Claire’s scream made Y/n look up, never lowering her staff.
In the middle of the air, Jim cut the truck in half with ease before it could reach his friends in the ground.
The Gumm-Gumms lowered their spears, pointing them towards the trollhunter, slowly pushing forward, cornering the team against the empty stands.
“For glory!” Blinky’s battle cry brought forward the trolls from TrollMarket that were ready to fight for their home, giving the team the opportunity to escape the death trap the Gumm-Gumms had put them in and Y/n the opportunity to fight in Douxie’s direction.
She cutted and stabbed with the sharpest part of her staff, making a mental note to remind herself to sharp it back after the battle as she avoided the rain of stones that fell each time a Gumm-Gumm died.
Y/n’s eyes scanned the square until she found Douxie trying to catch his breath about to be speared by a Gumm-Gumm. She felt the adrenaline in her veins multiple, she could feel her brain work overtime as she jumped to the troll’s elbow and pushed the whole length of the staff until her hand touched the throat of the Gumm-Gumm. She stayed there as she felt the tremors of the creature collapsing under her, she wanted to observe the complete destruction of the one who dared to try to hurt Hisirdoux Casperan.
“Y/n?” Douxie catched her before the Gumm-Gumm completely collapsed on the ground “are you okay?”
She turned around, a frown on her face.
“Are you okay? He almost impales you” she pointed to the pile of rocks with the red gemstone of her staff.
Douxie flushed. He didn’t hear him coming.
“Thank goodness you were here, love” he pointed to another pile of rocks “That one punch me in the stomach”
“I swear they are bigger than last time” Y/n threw a rock to the Gumm-Gumm fighting one of the trolls from TrollMarket in the distance turning it into a pile of rocks instantly.
“Maybe” Douxie said, taking a Gumm-Gumm out with his guitar “Oh, fuzz..”
Y/n turned to Douxie. Claire’s friends were being cornered by a Gumm-Gumm. She started running but Douxie was faster, he jumped on top of the Gumm-Gumm throwing it to the ground and finally knocking it out with his guitar.
“I’ve always hated those twits” he grunted.
“Wow” Mary blushed.
“You all right, lovelies?” Douxie turned around, smiling.
The teenagers giggled.
Y/n rolled her eyes at Douxie’s charms with a small smile on her face. She moved her hand, hiding away her staff before climbing to the stage.
“Hey, girls” she turned to Douxie with a smirk on her face “Romeo. Let’s get out of here before more of these things find us” she jumped down.
Douxie tried to catch Y/n's eyes while they helped Darci and Mary climb down but he couldn’t. She was too on edge, or at least that’s what he told himself.
The four of them walked close to the stage when Douxie saw a part of the curtain laying on the ground making a tent.
“Here” he pointed out as he pulled away the fabric.
The four of them crouched down and sat on the floor.
“Where should we go?” Darci grabbed Y/n’s arm.
Y/n looked around the city. Everything was dark, infested by Gumm-Gumms. Running without a place in mind implied fighting and she couldn’t ask that of the girls.
“What about the library?” Y/n turned to Douxie.
“Is too far and I’m not sure how secure” Douxie pointed with his eyes to their new addition.
Y/n nodded, understanding both messages.
“Is too far and I can’t activate the barrier with them there”
“Aren’t you Jim’s sister? You should know what to do!” Mary screamed, grabbing Douxie’s bicep “Do you workout?” She asked, the terror long gone.
Douxie looked up to Y/n and lifted up his brow.
Y/n rolled her eyes and focused on keeping guard.
“This is not the time, Mary!” Darci almost screamed at her friend.
“Sorry…all I’m saying…”
At that moment, Y/n thought that the sound of Strickler’s wings were god’s trumpets as he opened the sky to receive her.
“Stay here” she ordered, running out of that tent of madness before Douxie could stop her. She took her two pinkies into her mouth and whistled to catch the attention of the flying changeling:
“Hey!”
“What are you doing?! Are you mad?!” Strickler screamed back.
“Meh!” She lifted her shoulders “Where do we take the civilians?”
“Careful, love!” Douxie warned, pointing to the Gumm-Gumm charging at her.
Y/n looked down and found the remains of another Gumm-Gumm. She lifted a rock and threw it to the head of the dead Gumm-Gumm’s friend. The Gumm-Gumm fell, hitting its head against a fire hydrant.
“You were saying?” She screamed back at the changeling.
Strickler blinked, impressed at the fighting abilities of Barbara’s older child.
“The school” he pointed.
“See you there” she ran back to the hiding spot before more Gumm-Gumms could singled her out.
Y/n crouched down to face two impressed faces and a proud one.
“C’mon. Let’s go to the school”
“That was impressive! How did you do that?” Mary screamed.
“Yeah! That was so cool! I mean your aim?” Daci screamed.
Y/n turned to Douxie for help.
He nodded, agreeing with the teenagers.
“Let’s go!” Y/n stood up.
“But school is the last place I wanna be” Mary winned.
“Let’s. Go” Y/n sentenced before starting to run on the ruins of Arcadia Oaks.
Y/n ran like a horse with blinders on. The only thing that mattered was getting Mary and Darci to school. She wanted to be useful, to help get down the amount of Gumm-Gumms running around but getting sidetracked wouldn’t help either.
“Y/n!” She heard Douxie’s scream.
She ripped her blinders, stopping in place and turning back to see Douxie fighting with a pack of shadow memphit half a block away.
“Shit” Y/n mumbled.
“Ew! What are those?” Mary stepped back even farther away.
“I’ll be alright! Keep going!” He screamed back, stepping on the creatures.
“Are you sure?” Y/n was ready to whip out her staff and be over with the situation.
“Yes!” Douxie screamed ever louder when he saw her wrist twitch “Go”
“Let’s go” Y/n nodded and resumed her running not before giving him a last reminder “Doux, burn them!”
The three of them kept running through the guttural growls of the Gumm-Gumms. Among those awful sounds, they heard two friendly voices:
“Darci! Mary! Y/n!” They heard Claire and Toby screams.
“Claire! Toby!” The teenagers ran to her friends. Seeing them gave them extra strength needed.
Y/n smiled. She could hear them talking but couldn’t understand them. Her heart was beating in her ears reminding her that she left Douxie behind.
A burst of wind pushed Y/n forward, pulling her out of her mind. She looked up confirming her fear. Stalklings were hunting around them.
“Stalklings!” Y/n warned but it was too late. Before she could finish her warning, the creature flew down, its claws open, ready to grab Darci and fly away into the night.
“Toby!” The girl cried.
“Darci” Toby ran behind the creature, using his war hammer to follow them into the sky.
Y/n, Claire and Mary stood there, looking at the sky, waiting for their friends to come back down, listening to the struggle beyond the sky. They stood there, hearing the creature screeching with no sight from them.
Toby’s giggles made the girls turn around, taking out the grief from their chest. Darci and Toby had escaped the stalkling without a scratch.
The group kept running, avoiding more Gumm-Gumms and monsters in their last lapse than in their whole journey to the school.
Y/n watched Mary and Darci being escorted by Toby to the safety of the walls of the school.
“Do you think they’ll be safe here?” Claire asked.
“I hope so” Y/n smiled “But I think your teachers have it covered” she chuckled at the teachers running around threatening creatures they didn’t understand how dangerous they were.
“Have you got everyone to safety?” Blinky ran to the trollhunters.
“Yep. The ones who couldn’t make it home are hiding at school” explained Claire.
“Why is the eclipse still here?” Toby looked up at the sky “Wasn’t Merlin supposed to have his magic back by now?” He turned back.
“I don’t feel his magic yet” Y/n looked in direction of the canal “Something must’ve happened”
“Where is that wizard?” Claire complained.
“Morgana probably had a million tricks ready for him. We…” Y/n turned back. In the distance she heard her brother’s screams “Jim!” she followed the painful screams. Her legs tired of running the length of the city, of avoiding death multiple times but not stopping once until they saw him.
“Jim!” Claire screamed.
On the roof of the museum, Gunmar stood on top of Jim’s chest, he had him under his blade, using his power to try to convert him into his first human Gumm-Gumm.
“We’re too late!” Toby screamed.
Y/n felt her heart skip a beat, her hand slowly losing grip of her staff. For a moment, she imagined a world where Gunmar won, where she lost another sibling, where she couldn’t save her brother.
“In their darkest hour, I burn brightest!” A crimson light illuminated Jim, gaining back his strength, pushing Gunmar back by his sword.
Gunmar grunted, anger dripping out of his nostrils. He shook his head, trying to focus his strike through the rage. He repositioned his sword and changed once last time. Jim easily avoided Gunmar’s angry strike, hitting him while he was distracted.
“No” the troll looked down to the gash that went from his waist to his shoulder “It cannot be!”
“It is”
Blinky took a step forward. His eyes couldn’t believe what was happening. The long awaited end had finally come. His people could finally live in peace without having to fear another war coming. It was finally over.
Gunmar screamed, his body exploding into an expansive ball of light, destroying all the Gumm-Gumms that were still standing before finally becoming stone.
Jim looked into his dead eyes:
“For Draal” he kicked his corpse off the roof, finalizing the battle.
Jim observed the pile of rocks for a moment before jumping off the roof.
“Jim!” Claire jumped the pile of rocks that used to be Gunmar to jump into Jim’s arms.
“Ow! Careful. Sunburn” Jim hugged her back.
“You did it, Jimbo!” Toby screamed “Daylight went supernova”
“At long last, after centuries, Gunmar’s war is at an end” Blinky looked down at Gunmar’s remains, at the nightmare’s remains.
Y/n patted Blinky’s shoulder. She may not be a troll but she lived in Camelot, Gunmar had occupied enough time in her nightmares.
“And you, my dear boy, have ended it” Blinky shook Jim by the shoulders with a smile on his face.
“Um, not to be a total buzzkill, but why is the night still all eclipsey?” Toby interrupted.
Y/n pulled her eyes from the black sky towards the heavy footsteps coming their way. The grip on her staff tightened making her knuckles go white, her body still in high alert.
“Wingman!” Toby started to run towards the troll.
“Where’s my father?” Y/n walked closer to Aaarrrgghh.
“In trouble” he pointed to the sky “Morgana”
Y/n followed his finger. From the tornado of fire she saw Morgana flying down in her golden armor and green cape, just like the last time she saw her. Her laughter echoed around them, like a song trapped inside Y/n’s mind. She felt dizzy. She had to be dreaming, this has to be a nightmare but the world wouldn’t be so cruel? Right?
“But Merlin’s plan…” Blinky turned to Aaarrrgghh.
“Not work”
“Indeed”
The trollhunter team stood there, observing the sorcerer descending from the sky. Not knowing how to react.
“Don’t despair, weak ones. Your lives will soon be over�� Morgana laughed, her palms charging with magic.
“She’s beautiful” Toby sighed.
Claire turned to Toby, giving him a nasty look.
“But totally evil” he frowned “Yeah, yeah, we have to stop her”
“Without Merlin, how can we?” Blinky asked.
Y/n felt the side eyes of the troll burning her cheek but she couldn’t do more than what she was doing: observing the impossible before her. She imagined talking to her dead sister through vessels but she never thought she would see her again.
“I…” no words escaped her.
“Merlin’s champion” with an elegant movement of her arms she moved the rocks that Gunmar’s body left behind, leaving the path to Jim clear “I have so looked forward to meeting you” she chuckled.
Y/n tried to move but her body didn’t seem to answer her. She wanted to run and protect Jim but her will was in shock just like her heart.
“And then killing you” she moved her hands again this time pushing everyone out the way except Jim and Y/n.
Jim pulled daylight, jumping to strike Morgana before she could do more harm. The wizard smiled at the trollhunter’s boldness. She barely moved her hand, tying him with a golden rope.
Jim fought against the trap that lifted him into the air and close to the wizard’s face but it was in vain.
“Good morning and…good night” she moved her finger, throwing Jim miles away where the eye couldn’t see.
Morgana sighed, turning her sight onto Y/n.
“I was hoping that this time we would be in the same side, sister”
“You’re alive” was all that Y/n could muster.
The wizard cocked her face, examining the confused girl in the ground.
“After all this time…” Y/n shook her head “You’re alive”
“Well, of course” Morgana got closer, her voice full of something Y/n couldn’t decode “Where did you think I was all those years?”
Y/n looked up, her eyes burning with all the tears that she had been spilling for a century:
“Dead”
“You help him imprison me” Morgana didn’t believe her.
“He said we were going to help you!” Y/n tried to clean the tears as they fell but she wasn’t fooling anyone “I thought I was getting my sister back after the battle”
Morgana laughed, pulling back.
“Morgana” Y/n said, her voice soft.
The wizard disappeared into the distance, where the eye couldn’t see.
Y/n shook her head, trying to not lose the hurt she was feeling. She lifted her staff and used the dagger that Morgana had left on her heart to make a portal to find Jim. Her first attempt failed. Her hand was too shaky to mold the shadows.
“Fuzzbucket” she cursed, throwing a car a couple blocks away “Focus, Y/n, these are your friends”
Y/n took a deep breath, carefully lifting her staff back up. Her mind replayed her conversation with Morgana, her father treating her like a child in front of everyone, the hurt the curse did to Douxie, the amount of pressure that was put on Jim.
This time, the shadow bended at her will. Y/n crossed the portal but it was late. Morgana had everyone tied up with her magic.
“I showed your friends mercy, trollhunter, so they can watch you die” Morgana threw Jim around the pavement as his friends helplessly watched.
“Morgana!” Y/n grabbed the golden rope that tied the wizard and Jim together and cut it with her staff “he is just a boy!”
Morgana lifted her brows as she watched the younger wizard kneel next to the trollhunter.
“For the love I have for you, I won’t hurt you, Y/n but do not intervene” Morgana frowned. She moved her fingers returning the trollhunter to a painful tie and gently pushed Y/n to the side, immobilizing her hands.
“Morgana, please don’t” Y/n screamed, fighting with the rope.
“Pale lady!” Angor Rot scream stopped all pleas.
Morgana turned:
“My champion! On time for the grand finale” she moved to the side to reveal what she had accomplish “Here. For your efforts” she pointed to Jim “I give you the honor of finishing him”
Angor Rot ran, dagger in hand, ready to strike but when the moment came, he didn’t stab Jim, he punched Morgana, almost throwing her out the bridge.
“Witch! I am no one’s pawn!”
“You! What did you tell him?” She stood up, throwing Jim against one of the pillars.
“The boy reminded me who I fight for”
“You fight for me!” Morgana screamed, attacking him with her magic.
“This is the end” Angor Rot growled, avoiding Morgana’s attack.
Everything happened so fast. One moment, Y/n was still processing Morgana’s rebirth, the next, she’s standing in front of her strike, wishing that heaven looks like the forests in Camelot.
Morgana’s ties had always burned. Y/n had always been too weak to break them when her sister didn't want her to break them but when she saw the movement of her hands, when she heard the serious proportion of death, Morgana’s rope broke like cotton.
“Y/n!” She heard her friend’s desperate calls as her body hit the cold cement. She left her eyes closed, her body was too tired to keep fighting.
“Y/n?” A soft voice called.
Y/n slowly opened her eyes. The sunlight coming through the tree caressed her body, nurturing it from the outside in. Here, there was no pain, no tiredness, no war.
She smiled at the familiar tree filled sky. She turned her head and saw the familiar purple flowers that she knew so much. Maybe her wish was granted. She sat up, picking up a flower and taking it to her nose, the smell pulling her into a hug like a greeting from an old friend.
“Little Y/n, you are far away from home”
Y/n stood up, her hand calling for her staff that wasn’t there. She turned back to the place where the voice was calling. Y/n blinked a couple times thinking her eyes were deceiving her. Standing just a couple steps away from her was someone she thought long gone.
“Queen Guinevere?” Y/n frowned.
“It’s been a long time” Guinevere walked up to Y/n.
Y/n gasped, her knees buckling into bow when she saw the Queen’s unmistakable green eyes.
“There is no need for that here” Guinevere lifted Y/n from the ground, pulling a leaf out of the girl’s hair.
“What?” Y/n looked around “Aren’t we in Camelot?”
Guinevere chuckled:
“Yes, but I’m no Queen here. I’m just…Gwen” she smiled.
“Gwen” Y/n repeated, the name foreign in her mouth “Am I…?”
“Not yet” Guinevere locked their arms together and started walking “You were injured”
The memories of the battle came back in flashes: the fight with Morgana, Angor Rot helping them, Angor Rot dying, Jim jumping in front of Morgana’s strike but Y/n being faster and then, the trees.
“I remember… Morgana…” Y/n stopped “I have to save them”
“From what?” Guinevere had no urgency in her voice.
“From Morgana. I have to help her too”
Guinevere shook her head.
“You can’t help everyone, Y/n” Guinevere smiled “Sometimes, people have to grow on their own”
“But they are kids and Morgana…Morgana is hurting” Y/n frowned “I thought you would understand”
“Is their destiny. You can’t fight with destiny” Guinevere explained, her voice soft like velvet.
“I don’t accept it!” Y/n closed her fists.
“Destiny does not need or want your permission”
Y/n let the tears fall freely. She knew this but she couldn’t accept it. Not for her family. Not this cruel destiny.
“I can help my brother and his friends survive. I can help Morgana change” she pleaded.
Guinevere shook her head.
“You can help your friends but you cannot change Morgana, you can only love her”
“Why?” She cried “She deserves better”
Guinevere smiled, looking at a butterfly passing by.
“Yes, she did” the woman cleaned the tears from the girl’s eyes “but, sometimes, life isn’t about deserving”
Y/n looked up at Guinevere, she looked so young. In her eyes, she could see all the unlived life shining through. If someone could understand fairness maybe it was her.
“So, I should let her rot in her anger?” Y/n wasn’t angry at Guinevere, she was mad at the world.
“No. You keep loving the person you knew” Guinevere turned to the side.
Y/n noticed the creek flowing next to them. The creek where Douxie and her would tempt luck one too many times, the creek where they decided to abandon Camelot before the kingdom fell years later. Across it, amongst the darkness of the trees she saw a figure walking towards them and this time, she didn’t call her staff.
“Morgana” Y/n whispered when the woman put her feet in the creek. She walked through the creek, the violent current of the water did not disturb her.
“Birdie!” Morgana engulfed her in a hug, no shadow in her voice.
“Sister” Y/n cried, her nails digging in Morgana’s corset “I’m sorry…I’m sorry”
“No…no” Morgana pulled back with a smile, the smile that Y/n remembered, grabbing Y/n’s cheeks “Don’t apologize”
“They want to kill you” Y/n sobbed “Maybe I can save you”
Morgana shook her head.
“Let them”
“No” Y/n hid her face in Morgana’s neck “I don’t want to lose you”
“I’m not gone just because you cannot see me” Morgana brushed Y/n’s hair with her fingers “I will be in the other side of the creek”
Y/n pulled back, her puffy eyes full of confusion.
“It’s time for me to go, Birdie” Morgana tiredly sighed “I haven’t been myself in awhile”
Y/n looked to the other side of the creek. The forest grew thicker, darker but the longer she saw it, the more she wanted to go.
“Y/n?! What happened?!” She heard the echoes of her father’s desperate screams.
“You have to go back” Guinevere put her hand on Y/n’s back “Your friends still need you”
Y/n nodded.
“Thank you for your words, Gwen. It was nice seeing you again” Y/n hugged the woman.
“You have grown into a beautiful woman, Y/n” Guinevere hugged back.
Y/n turned to Morgana, her heart turning into itself knowing it was the last time it was going to see her again.
“I’ll miss you all my life, sister” Y/n wanted to disappear in Morgana’s arms but she knew she couldn’t.
“Then, I hope you’ll miss me for a long time” Morgana chuckled, squeezing Y/n tight “I wish that Hisirdoux and you live a long and happy life. After that, you can come back to me. We have all eternity to be together”
Y/n chuckled.
“I love you, sister” Morgana said into Y/n’s hair.
“I love you too” Y/n pulled back.
Guinevere stretched her hand and Morgana took it. The ground started to shake, throwing Y/n to the ground but it didn’t seem to bother the older women. Morgana stopped in the middle of the creek and observed Guinevere disappearing into the forest. The ground shook once more, throwing the trees around Y/n to ground.
“Morgana!” Y/n screamed, stretching her hand, trying to reach the woman in the creek.
Y/n woke up, gasping for air. Her chest felt like one of the trees had fallen on it.
“Birdie, are you alright?” Y/n felt the familiar callous hand that had brought her to life brushing away the hair from her face.
She blinked a few times, her eyes adjusting to the new bright light. Between the blurriness she recognised the crystalline blue eyes watching her, the eyes that had followed her all her life.
“Mmmh” she lifted her heavy hand and grabbed her father’s wrist, pushing his hand against her cheek
“You’re alive” Merlin sighed in relief.
Y/n wasn’t sure but she thought she saw a tear fall from her father’s eye.
“I think so” she looked down at her chest with a teasing smile.
“Y/n!” Jim crawled closer.
“Jim” Y/n sat up, pulling her brother into a hug.
“You scared me” Jim pulled back.
“I told you I’ll see you later, didn’t I?” Y/n stood up.
“Don’t ever pass out again, okay?” Toby hugged her back.
“I don’t think I can promise that” she chuckled.
“Just do it” Toby insisted.
Claire rolled her eyes in complicity.
“Fine” she smiled.
The boy let go of her.
“I promise”
“The eternal night is finally over” Blinky watched the ruins of the entrance of TrollMarket.
“Heartstone gone” Aaarrrgghh closed his eyes.
“In Deya’s name…” they prayed for the place they once called home.
“Then we’ll need to find a new heartstone out there” Jim walked up to them, putting a hand on their shoulders.
“I’ve heard tell of a heartstone in a place called New Jersey” Merlin said.
The trolls turned at the news of a new home.
“Well make preparations and gather what we can from TrollMarket” Blinky nodded.
“We live at nightfall” Jim said.
The night came faster than everyone expected. There wasn’t enough time to say goodbye. There never will be. Y/n spent the afternoon reminding her soul that nobody died, that this goodbye was not permanent, a new concept for the inmortal. When the sun started to fall down and her soul started to relax, a new thought crawled her way up to the top in her lists of anxieties: staying behind.
She paced her room, the nail on her thumb almost gone as she thought about how she would tell her father she wanted to stay.
“You seem nervous” Merlin entered Y/n’s room.
“I’m not going with you” Y/n stopped, the thought escaping her mouth before she could think of an excuse “I…I didn’t mean it like that” she turned to the door where her father was standing “I’m sorry…I…”
“It’s alright” Merlin chuckled.
“What?” Y/n frowned. She was sure her father would want her by his side like he always did.
“Y/n, you’re a woman now” Merlin walked around Y/n’s room observing the pieces of a life he wished he could have shared with his daughter “I should've realized that before. It’s time for you to grow on your own”
Y/n swallow the confusion from her throat.
Merlin stopped in front of Y/n and grabbed her shoulders
“Whatever you choose would be alright with me”
“You must be spending a lot of time with Barbara” she smiled, burying herself in her father’s arms “Don’t disappear for too long”
“I won’t” Merlin kissed his daughter’s head, pulling back to see her eyes.
“Besides, someone has to make sure Douxie gets his staff” Y/n joked, unable to hold her father’s gaze for too long.
Merlin rolled his eyes.
“Make sure that boy doesn’t burn the city” he walked away, stopping at the door “and, Y/n?”
“Yes?”
“Not a word of this to Hisirdoux”
She nodded, the secret now weighing heavy on her chest.
Merlin watched as Y/n hugged her mother at the edge of a shattered Arcadia Oaks. Barbara had made her part by staying in the safety of the hospital, aiding the wounded.
The clanking of metal made them turn back.
“Hey!” Jim walked out of the woods with a smile, Blinky and Aaarrrgghh walking alongside him.
Barbara walked to Jim, tears filling her eyes.
“I promised I’d never leave you” Jim looked down.
“Honey” Barbara grabbed his cheeks, lifting up his face “I knew this day would come. I just…never knew when” she smiled.
Jim pulled his mother into a hug.
“I hope you find what you’re looking for” Barbara let the silent tears fall “Just call often. Every day. Twice. Text. Now and then?”
“Of course, mom. I love you” Jim chuckled
“Not more than I love you, kiddo” Barbara squeezed tighter.
Jim looked up, seeing her sister observing the scene teary eyed. He lifted his hand knowing that Y/n would run to take it, pulling her into the hug.
“I’ll miss you, Jim” she said “Please don’t get an accent”
“I’ll miss you too” Jim laughed.
“Are you ready, Master Jim?” Blinky walked up to them.
“Ready as I’ll ever be” Jim answered, dissolving the hug.
“I don’t know what tomorrow brings but with our trollhunter by our side, I don't fear it either” Blinky looked at Barbara.
“I really appreciate that, Mr. Blinky” Barbara smiled.
The grass rustled making Jim turn, relaxed as he was sure, the worst was behind them.
“Claire,” he frowned “I can’t ask you to…”
“You didn’t ask” Claire walked up to him.
“She has enough credits to graduate early” Claire’s mom explained “We’re treating this like some time abroad”
“As long as she comes back soon” Claire’s father frowned, pointing at Jim with his finger as if after all the darkness Jim has seen he could be a danger to him.
Jim laughed, relieved that he could have Claire by his side.
Y/n heard the familiar flutter announcing the changeling’s presence. Strickler flew down with NotEnrique in his arms.
“Good luck, young Atlas” he nodded.
Jim smiled before starting his pilgrimage to New Jersey.
“Wait! Wait for me!” Toby’s screams made everyone stop in their tracks. The boy ran until he got to his best friend's side “Whew!”
“I thought that one was staying with you” Merlin whispered in Y/n’s ear.
“Dunno” Y/n shook her head in confusion.
Toby kneeled down trying to recover his breath “Boy, these goodbyes are tough, you know. Nana wanted me to take Mr. Meow Meow P.I., but he does not travel well” his smile dying when he noticed no one was following his enthusiasm “What?”
“Tobes…”Jim sighed “You have to stay”
“What?! You’re going on a quest. I love quests. We go everywhere together”
Jim grabbed Toby’s shoulder:
“I’m hurt. Claire lost her shadow staff. You are the only one who can protect Arcadia”
“Did you tell everyone that Doux and I are bad at our jobs?” Y/n whispered, a smile cutting across her tired face.
“I think they can realize it for themselves” Merlin chuckled.
“No, Wingman” Aaarrrgghh took a step forward “I help. I stay”
“So, you’re staying with me…and you’re leaving?” Toby cocked his head.
“But we’ll be back. Someday”
“You better” Toby engulfed Jim and Claire into a hug.
“And then, we'll get tacos” Jim said into the hug.
“And enchiladas” Claire added.
Y/n turned to Merlin
“Father”
“Hmmm” Merlin looked down at her daughter.
“I wanted to give you this…before you leave” Y/n pulled an old cell phone from her pants “It’s my backup phone. Jim said he’ll help you to text and call” she smiled at the idea of her father having to text “It’s faster than letters”
Merlin smiled
“Thank you” he picked up the device, unsure how to grab it.
“Be careful they’re weirdly fragile, well nowadays” she shook her head, trying not to enter in a weird rant about phones “I put my number in. When you get a “letter” from me it’ll say Birdie”
“I’ll wait for your letters” Merlin patted Y/n’s head.
“Keep Arcadia safe” Jim said “You’re its only trollhunters now” he got closer and whispered “and keep an eye on Y/n. She wanted to stay here and I think something is going on”
Toby nodded.
“I heard that!” Y/n walked to Toby, jokingly punching his arm.
Y/n sat in the quietness of her room and waited for her mother to fall asleep. She slowly opened the window so the rail wouldn’t squeak, she jumped out her room into a small pile of dirt that would soften the blow. A routine that she had done before in a world where Merlin was just a legend and trolls was something you would see on tv.
She walked the destroyed streets of Arcadia. Tonight, not even the moon dared to leave the safety of her house, only Y/n.
She climbed the stairs thinking of one thing: Hisirdoux. Douxie’s apartment was dark like Arcadia’s streets. Y/n took off her jacket and hung it by the door along with Douxie’s coats, she kicked off her shoes and walked to the bedroom in her snoopy socks.
“Hey, kids” She petted the cats cuddling on top of the dresser as she walked to the bed.
Y/n pulled the covers away, sitting on Douxie’s bed. Douxie getting pulled by the movement on the bed, his sleeping mind knowing the routine by heart.
She finally laid down, her lungs breathing normally once her head hit the pillow.
“Hhhm…Y/n?” Douxie's arms surrounded her, pulling closer to him.
“Goodnight, Doux” she turned to him, hugging him back.
“I’m glad you’re alright” he whispered into her head.
“War is over, Doux” she kissed his collarbone “Let’s sleep”
Tumblr media
A/n: and that was the last chapter of Trollhunters!! I’ll see you in Wizards!!
The amount of times I read this beast is unholy
remember to leave love letters and death threats!! 💖
<Taglist: @douxiesaurus @fandomobbsessedb @queteimporta-99 @adrias23 @wickedlovely121 If your url is crossed it means tumblr didn’t let me tag you> want to be tagged next update? Let me know! 📩
42 notes · View notes
dreaminginthedeepsouth · 10 months
Text
Tumblr media
Wassily Kandinsky, ‘Untitled’ (1928) :: [Robert Scott Horton]
* * * *
Imogen Savage: Housed in a 19th-century listed mansion that stretches skyward into spires, the Grisebach auction house gives off the disquieting charm of a German fairytale castle. Outside runs Fasanenstrasse, a leafy street of galleries and skincare boutiques in one of Berlin’s chicest corners. On December 1 2022, Marcin Król, the Polish consul in Berlin, climbed the steps to the building for the evening sale beginning at 6pm. A number of impressive modern artworks were on offer, including a sought-after self-portrait in oil by Max Beckmann. But it was Lot No 31, “Untitled”, a little pink Wassily Kandinsky watercolour from 1928, that had Król’s attention that evening. Król was not at Grisebach as a buyer. Earlier that day he had sent the auction house a message demanding it stop the sale of the Kandinsky. In the hours since, representatives at Grisebach had reviewed the legal status of the artwork and its right to be sold by Inga Maren Otto, a German billionaire and philanthropist. Their decision was clear. They would proceed. At 4.40pm, Król took to Twitter, quoting the message he’d sent to Grisebach. “Withdraw[ing] the painting from the auction,” he wrote, “[was] the only correct and moral action in this situation . . . The provenance/history of the painting stated [in the catalogue] is clear . . . the painting has ownership markings indicating its origin from the National Museum in Warsaw. [It has been registered] from the Polish side in Interpol’s database of stolen works of art.” He finished the thread with an update: “The auction house has not yet stopped selling the work. As of 4.50pm.”
Król watched on a TV screen in the corner of an anteroom as the auction began. Lot No 31 eventually appeared on the screen. Flattened by the glowing pixels, the original aqueous colours took on neon tones. There was a faint scribble underneath in Kandinsky’s handwriting. After a flurry of bids, more than doubling the upper reserve price, the hammer came down. Afterwards, Król posted a photo to Twitter with a solemn summary of what he had witnessed. It read like both the beginning and the end of an art-crime story: “Grisebach sold Kandinsky’s watercolour [“Untitled”] for €310,000. The painting was stolen in 1984 from the National Museum in Warsaw.” Then the Berlin police showed up at the auction house, in response to a report of a stolen artwork being sold on the premises. Król’s message that day was, said Grisebach in a statement issued after the event, the first they’d learnt of the theft.
I heard about the auction of the Kandinsky watercolour some weeks later. I was intrigued by this little work on paper, the size of which is hard to gauge when viewed online. A cluster of geometric shapes and coloured washes not much bigger than a postcard, it’s not a famous piece and was never supposed to be. The personalised dedication at the bottom provides a clue as to its original, more intimate context. Through Król’s media offensive, I began to imagine the painting in its previous lives. A valued artwork can do this; move through history like a time traveller who has seen it all, changing hands, changing walls, changing in value, picking up a few marks and scuffs, but remaining, on the surface, itself. It’s easy to forget that many of the works of art we see today have somehow weathered revolutions, wars and genocide. During and after the second world war, art collections dispersed like breadcrumbs in the mouths of sparrows. Since that time, art dealers and auction houses have continued to sell these works, right up to the present day, with values soaring.
As I began to trace the Kandinsky’s journey, I discovered the story had deeper roots than even Król had imagined. The watercolour wasn’t stolen once but twice. Having survived the Nazi party’s confiscations of modern art in the 1930s, it languished in a depot in occupied Poland before travelling back and forth across the world via private and public sales as the lines between black market and art market blurred postwar. As the trail grew more convoluted, my questions multiplied. How was it possible, I wondered, that a piece of art that we know was once stolen from a major European museum could now be sold, perfectly legally, by an important German auction house? And who, in the chain of ownership spanning nearly a century, is the rightful owner of Lot No 31? In his Dessau studio in 1928, Wassily Kandinsky sat before a small sheet of thick paper. He drew in ink, a balance of precisely placed interlocking semicircles, triangles and floating circles, with a more irregular snakelike mark through the centre. Then he dragged his paintbrush across some watercolour pans, applying the colours to the interior of the shapes in blues, yellows and reds, and washing the surround in pink. The watery paint pooled in different areas, variegating the intensity of the colour where it settled. Then it dried, locking the painting into position. At the bottom, in pencil, the artist wrote: “Meinem lieben Otto Ralfs, herzlichsten Glückwunsch, Kandinsky I IV 28” [“To my dear Otto Ralfs, Happy Birthday, Kandinsky, 1 April 28”]. It was a gift, made for his friend and patron on the occasion of his 36th birthday. Kandinsky’s studio was in a row of identical semi-detached houses located in a pine forest at the edge of town, where artist-professors lived and worked. This was the vision of Walter Gropius, founder of the influential modernist art and design school the Bauhaus, who designed the Dessau “Masters’ Houses” in 1925 to fit his concept of gesamtkunstwerk, or total artwork. Kandinsky lived at No 6, next door to the Swiss-German artist Paul Klee. The day I visited earlier this summer, the sunny weather was heating the pines, filling the air with the same calm, sweet smell that Kandinsky, then in his late fifties, and the younger Klee would have breathed as they sat drinking tea together in the garden.
Inside, the thick, shiny paint was fresh from recent restoration work, distracting the senses from conjuring their presence. The artists’ studios, the largest rooms in their carefully designed houses, shared a wall. From the front, an enormous horizontal window frames the central focus of the house, the parallel studios in which they worked, taught and held salons: Kandinsky on the left, Klee on the right. Otto Ralfs and his wife Käte bought their first works by Klee when they visited the Bauhaus in Weimar in September 1923. After that, their lives changed completely. The couple didn’t have a lot of money. He worked as an insurance salesman and owned a shop in his hometown, Braunschweig, in northern Germany. She was a paediatric nurse. But they were among the first people to see the value in the art being produced at the Bauhaus. At one point, they had the largest collection of Klees, and the second-largest collection of Kandinskys after Solomon R Guggenheim.
[Financial Times]
8 notes · View notes
plagueplanethq · 1 year
Photo
Tumblr media
Plague Marines for the ninth edition codex.
Vectoriums of the 2nd Plague Company raced to secure tank component fabricator-shrines across all three of the cluster’s systems, aiming to unleash the Ferric Blight upon them and corrupt them. On Thrios, the Carrion Brotherhood planted hundreds of Miasmic Malignifiers to convert auto-factorums producing Leman Russ turrets into biomechanical monstrosities. On Septios, the Sons of Glorious Decay battled Space Marines of the Auric Consuls, Black Pegasi and Nightshades Chapters for weeks to capture seven manufactorums producing tracks for Chimera-chassis vehicles.
“War Zone: The Tri-Forge Cluster” from the ninth edition codex.
13 notes · View notes
libraryofcirclaria · 2 months
Text
Recastelaren
Library of Circlaria
Blog Posts
Article Written: 23 February 1456
Geography
Although closer to Ancondria than the rest of Circlaria, Recastelaren, officially known as the Isles of Recastelaren, is considered a part of the Circlarian Realm.
Recastelaren is actually a cluster of five water-bound Isles, with one Center Island around which travel four Lesser Islands. The Lesser Islands revolve around the Center Island once every two weeks. The Center Island consists of a variably smooth shoreline around the outside, a tall plateau in the center, and a basin in the center of the plateau. Over the center of the basin floats a stationary Skymountain which rotates once every 24 hours. Four large Skymountains revolve around the Center Island once every week.
Meanwhile, each of the four Lesser Islands has four Skymountains that revolve around it and a Skymountain in the center that is stationary relative to the motion of the said Lesser Island. And each Skymountain that orbits around the Center Island has four lesser Skymountains that revolve around it once every 24 hours.
To note, all revolutions and rotations are clockwise.
Such a place has been the object of scientific study for centuries, and such studies have found Recastelaren's motions to be the result of gyrostones and gyro-energy. Needless to say, with exploding value for gyro-technology in recent years, Recastelaren has been a place of interest for traders and investors.
Recastelaren's climate is mostly temperate. Being located very far South in the Southern Hemisphere, Recastelaren has four distinct seasons: spring, summer, fall, and winter. Its vegetation consists of grasslands accompanied by pines and deciduous trees.
History
From the pre-Ashen years to around 500 CE, civilization throughout the Isles of Recastelaren consisted of a loose collection of fishing and farming communes. A confederation of communes eventually emerged to dominate the Center Island while a single-commune society dominated each of the four Lesser Islands. Each commune held a common religious belief that deities lived and ruled from each of the Skymountains; and commune leaders would turn to these deities for a "consensus" with regard to perplexing issues. These communes were otherwise self-governing, with each wanting no business with the others except for occasional trade, and would only unite with one another in the presence of an external threat.
In 504 CE, Graenbeard the Great, an infamous and powerful sea pirate in the Circlarian Realm, launched a brutal attack against the Isles of Recastelaren, which fell rather easily to defeat. Many native Recastelarians were slaughtered while others were taken into slavery and transported to other regions of Circlaria. And thus, the Isles of Recastelaren were united under the banner of Graenbeard, who ruled as its King until his unexpected death in 517 CE. With no heir to the throne, Recastelaren became an absolute principality, ruled by a succession of Lords until 804 CE. That year, the Principality was violently overthrown and re-established as a Republic. The Republic of Recastelaren was governed by a collective leadership from the Center Island, who approved Consuls elected by the population to govern over each of the four Lesser Islands.
However, by 1051 CE, the Republic of Recastelaren was corrupted economically and politically; and a threat of civil war began to emerge. In May of that year, a charismatic figure by the name of Lord Valooren led a coup which temporarily unseated the central government on the Center Island. A similar event had occurred eighty years previously; and the central government was prepared to act, subdue that uprising rather easily. However, before they could settle the 1051 uprising, the coup leaders quickly signed a deal to hand Recastelaren to the control of the Edoran Regiondom of the Great North, seated in Northern Remikra. A treaty was signed to dissolve the Republic and re-establish the territory as the Edoran Dominion of Recastelaren on 18 May 1051.
From 1051 to 1354, the Edoran Dominion of Recastelaren was administered by a succession of Governor-Generals appointed and approved by the Parliament of the Edoran Regiondom. And such a succession of Governor-Generals established a hallowed tradition of modern economic policies allowing for open markets and the fostering of private small businesses. Furthermore, they enacted social policies to grow and maintain a comfortable middle class for both local Recastelarians and Edorans alike.
Under Edoran leadership, a local Parliament was established on the Center Island while a Council was established for each of the four Lesser Islands, with seats for these legislative bodies elected by the local population. Furthermore, aviation, nautical, and gyro-technology enabled people to set foot upon the Skymountains; and with growing populations, each Skymountain would also have its own local hierarchical government and elected Council. Most notably, government policies here designated certain areas of the Isles and Skymountains as protected wildlife preserves.
As a result, for nearly 300 years, the Isles of Recastelaren enjoyed a balanced economy, high living standards, and an overall high morale.
However, such a tradition came to an end when, in 1354, the Parliament of the Edoran Regiondom in Remikra voted to sell Recastelaren to a joint ownership between the Remikran Union and the Kingdom of Gyrosak. In 1359, the Remikran Union voted to have its portion of Recastelarian territory handed over to Gyrosak, so that Gyrosak had total jurisdiction. Very soon after, Gyrosak handed Recastelaren over to the Gyrosakian Royal Treasury, who bartered numerous pieces of territory, each to the sole ownership of a privately-owned business or a commercial sea guild. During this time period, the Royal Treasury would purchase pieces of territory it expected to gain value, and sold them to other businesses for profit. Businesses and sea guilds would do the same.
Some of these pieces of land were built upon by naval shipyards as well as military and air bases. These were originally owned directly by the Gyrosakian government. However, in 1361, a private multinational company known as the Lubbock Shipyard and Airbase Holdings Corporation bought these properties, most of which were either along the coastlines of the water-bound Isles or atop the Skymountains. In exchange for rapid technological advancements in these fields, Lubbock Holdings would lease out these properties to the Gyrosakian government for monthly or yearly fees. And as part of a special contract, numerous businesses in Recastelaren would pay service fees to the stationed Gyrosakian forces for security and military protection.
Throughout the 1360s and 1370s, Recastelaren became a truly libertarian society consisting of an open market where businesses bought and sold property and assets; and no single government had official jurisdiction over the Isles. This period was accompanied by modernization on an industrial scale, as each landmass, water-bound and air-bound, was converted into a major cityscape. And the wildlife reserves, having lost their protection while Gyrosak sold Recastelarian territories to private businesses, were not exempt.
By 1374, each Isle and Skymountain was a daunting urbanscape accompanied by economic inequality, rising costs of living, and consistently low wages for a rapidly-growing lower working class. In March of that year, workers across numerous Recastelarian businesses and industries joined and formed the United Workers of Recastelaren (UWR). As a single organization, they began to organize a general strike. In response to this, the Recastelarian corporate elite formed the Order of the Grey Dawn, which was led by the top Recastelarian business oligarchs and consisted of two other classes: the Supporters, who were laborers convinced to "join the cause" via votes, pledges of loyalty, and monetary donations; and the Fighting Loyals, who were hired by the Leaders to carry out acts such as assassinations of outspoken UWR figures, street confrontations, and acts of protest to derail the function of businesses opposed to the Order. Furthermore, only men were allowed to cast votes, become Leaders, or join the Fighting Loyals.
In September 1374, the Order of the Grey Dawn launched a broad effort across Recastelaren to eradicate the existence of the UWR, which involved the barricading of streets, sit-ins derailing opposing businesses, the destruction of small businesses supporting the UWR, the storming of UWR locations, and even the slaughter of certain UWR members.
Citing this as a possible fascist coup, the UWR began reaching out to powerful foreign entities for assistance. The Kingdom of Gyrosak completely ignored such calls made by the UWR. However, such a call was answered by the Seafarers of Barry, a commercial sea-guild collectively governed by its laborers who overthrew its top-down leadership one-hundred years previously. The Seafarers offered to help by building ships from metal scraps collected all throughout the Circlarian Realm, and lending or selling these ships to any entity willing to assist the UWR. However, the Seafarers answered the need for another entity to assist the UWR by calling upon one of its closest allies: the Sororal Council of the Primeran Class of the House of Esary, or the SCPC. The SCPC agreed to such a deal because they had recently been ousted by the House of Esary from their home territory in Notulfa, located in the Far-North landmass of Hobland, and needed a place to settle in terms of government and jurisdiction. The SCPC agreed to pay the Seafarers a sum of wealth to construct robust naval ships; and the Seafarers succeeded in increasing the naval presence of the SCPC to five times its original size. With well-crafted propaganda, and possibly oathcrafting skills, the SCPC was able to recruit large numbers of allied Circlarians to join them in order to man these ships.
Members of the UWR began to grow concerned with the SCPC, however, after learning that the ouster of the SCPC from the House of Esary was in the wake of apparent "shady troubles" with regard to Circlarian international law. Furthermore, the Diplomatic Officiators of the SCPC had been broadcasting disturbing rhetoric of "class supremacy" and the "glory of opponent elimination." Combined with the need of the SCPC to find a place to settle, concern began to grow that the SCPC was intending to invade and conquer Recastelaren. As a result, two chapters of the UWR made a conjoined official call to the central leadership of the UWR to reconsider its unwavering acceptance of the SCPC as its ally; however, such a call was completely ignored.
Nevertheless, the SCPC took notice and began to take counter-actions. They did so by first approaching Lubbock Holdings with a proposal to gradually acquire its naval, military, and airbases. Lubbock Holdings agreed to the deal, but such a deal required a mutual agreement from the Gyrosakian government, who denied such a motion. As a result, the proposal was null and void. Nevertheless, the SCPC began assembling floating naval military bases with its newly-built ships around the Isles, while calling upon its parent entity, the House of Esary, to assist them in their agenda. Despite having ousted the SCPC from Notulfa, the House of Esary was still willing to help them settle in new territory. Between late 1374 and early 1375, the House of Esary conducted business deals to acquire a majority of Recastelarian media companies and directed them to implicitly indoctrinate Recastelarians with pro-Esarian principles. The House of Esary used such media influence to convince Recastelarian charter schools to merge with them in a similar fashion. They then successfully acquired all of the "soft industry" businesses and "infrastructure industry" businesses. With a strong newly-gained economic clout as a result, the House of Esary convinced these businesses to terminate service fee arrangements with the Gyrosakian forces stationed at the bases owned by Lubbocks Holdings.
By 1375, the stationed Gyrosakian forces were no longer able to pay rental fees to Lubbocks Holdings without consultation from the Gyrosakian Royal Treasury. In May 1375, the House of Esary pitched a similar proposal to the one made by the SCPC the previous year for Gyrosakian forces to terminate their lease with Lubbocks Holdings and for Lubbocks Holdings to sell their properties to the House of Esary. All three entities agreed, signing a contract that included a clause obligating the SCPC to promise non-aggression in Recastelaren. Local Recastelarians were skeptical of this arrangement, however, since the non-aggression clause was not enforceable, but division in the Recastelarian population hindered their ability to effectively negotiate with these powerful entities.
In June 1375, the contract was officially signed; and immediately afterward, a subsequent deal was signed between the House of Esary and the SCPC to turn over the properties to the SCPC. Throughout the month of September, Gyrosakian forces gradually withdrew from Recastelaren. And on 1 October 1375, the SCPC moved in. Breaking their promise to uphold the non-aggression clause, they launched a full-scale invasion of Recastelaren. With no central government in place to fight back, Recastelaren was defeated and fell under total control by the SCPC, who established its official sovereignty over the territory with its government seat on the Center Island, and brought Recastelaren under totalitarian rule.
Recastelaren has been under total control of the SCPC ever since.
1 note · View note
pero-me-encantas · 2 months
Text
Comparing the Best Ingress Controllers for Kubernetes
Comparing the best ingress controllers for Kubernetes involves evaluating key factors such as scalability, performance, and ease of configuration. Popular options like NGINX Ingress Controller offer robust features for managing traffic routing and SSL termination efficiently. Traefik stands out for its simplicity and support for automatic configuration updates, making it ideal for dynamic environments. HAProxy excels in providing advanced load balancing capabilities and extensive configuration options, suitable for complex deployments requiring fine-tuned control. Each controller varies in terms of integration with cloud providers, support for custom routing rules, and community support. Choosing the right ingress controller depends on your specific Kubernetes deployment needs, including workload type, security requirements, and operational preferences, ensuring seamless application delivery and optimal performance across your infrastructure.
Introduction to Kubernetes Ingress Controllers
Ingress controllers are a critical component in Kubernetes architecture, managing external access to services within a cluster. They provide routing rules, SSL termination, and load balancing, ensuring that requests reach the correct service. Selecting the best ingress controller for Kubernetes depends on various factors, including scalability, ease of use, and integration capabilities.
NGINX Ingress Controller: Robust and Reliable
NGINX Ingress Controller is one of the most popular choices for Kubernetes environments. Known for its robustness and reliability, it supports complex configurations and high traffic loads. It offers features like SSL termination, URL rewrites, and load balancing. NGINX is suitable for enterprises that require a powerful and flexible ingress solution capable of handling various traffic management tasks efficiently.
Simplifying Traffic Management in Dynamic Environments
Traefik is praised for its simplicity and ease of configuration, making it ideal for dynamic and fast-paced environments. It automatically discovers services and updates configurations without manual intervention, reducing administrative overhead. Traefik supports various backends, including Kubernetes, Docker, and Consul, providing seamless integration across different platforms. Its dashboard and metrics capabilities offer valuable insights into traffic management.
Mastering Load Balancing with HAProxy
HAProxy is renowned for its advanced load balancing capabilities and high performance. It supports TCP and HTTP load balancing, SSL termination, and extensive configuration options, making it suitable for complex deployments. HAProxy's flexibility allows for fine-tuned control over traffic management, ensuring optimal performance and reliability. Its integration with Kubernetes is strong, providing a powerful ingress solution for demanding environments.
Designed for Simplicity and Performance
Contour, developed by VMware, is an ingress controller designed specifically for Kubernetes. It leverages Envoy Proxy to provide high performance and scalability. Contour is known for its simplicity in setup and use, offering straightforward configuration with powerful features like HTTP/2 and gRPC support. It's a strong contender for environments that prioritize both simplicity and performance.
Comprehensive Service Mesh
Istio goes beyond a traditional ingress controller, offering a comprehensive service mesh solution. It provides advanced traffic management, security features, and observability tools. Istio is ideal for large-scale microservices architectures where detailed control and monitoring of service-to-service communication are essential. Its ingress capabilities are powerful, but it requires more setup and maintenance compared to simpler ingress controllers.
Comparing Ingress Controllers: Which One is Right for You?
When comparing the best ingress controllers for Kubernetes, it's important to consider your specific needs and environment. NGINX is excellent for robust, high-traffic applications; Traefik offers simplicity and automation; HAProxy provides advanced load balancing; Contour is designed for simplicity and performance; and Istio delivers a comprehensive service mesh solution. Evaluate factors such as ease of use, integration with existing tools, scalability, and the level of control required to choose the best ingress controller for your Kubernetes deployment.
Conclusion
Selecting the best ingress controller for Kubernetes is a crucial decision that impacts the performance, scalability, and management of your applications. Each ingress controller offers unique strengths tailored to different use cases. NGINX and HAProxy are suitable for environments needing robust, high-performance solutions. Traefik and Contour are ideal for simpler setups with automation and performance needs. Istio is perfect for comprehensive service mesh requirements in large-scale microservices architectures. By thoroughly evaluating your specific needs and considering the features of each ingress controller, you can ensure an optimal fit for your Kubernetes deployment, enhancing your application's reliability and efficiency.
0 notes
cloudscapecomics · 3 months
Text
The UBC Comics Studies Cluster (PHH Research Cluster), Survivor-Centred Visual Narratives Project, and German Consulate General in Vancouver invite you to a Discussion and Reading with Comics Author Tobi Dahmen
Join us for a fun evening of chatting and diving into the world of comics with German illustrator and comics artist Tobi Dahmen, where he will present his latest graphic novel, Columbusstrasse: Eine Familiengeschichte 1935-1945 (2024). Based on old family letters discovered after his father’s death, this family saga from World War II uses moving accounts to reconstruct the German war years,…
Tumblr media
View On WordPress
0 notes
cloudastra1 · 3 months
Text
Tumblr media
A Consul cluster provides a robust solution for service discovery, health checking, configuration management, and secure service communication in distributed systems. By following best practices for deployment, monitoring, and security, you can leverage the full power of Consul to build a resilient and scalable infrastructure.
0 notes
pratimadheer · 8 months
Text
Navigating the Commercial Real Estate Landscape: Office Spaces for Rent in Mumbai
Tumblr media
Navigating the commercial real estate landscape for office spaces in Mumbai demands a nuanced understanding of the dynamic market forces, evolving business needs, and the diverse range of options available in this bustling metropolis. Mumbai, often referred to as the financial capital of India, boasts a thriving commercial real estate sector that caters to a myriad of industries, from finance and technology to entertainment and manufacturing. This article explores the intricacies of the commercial real estate landscape in Mumbai, providing insights into the current trends, key considerations, and notable areas offering office spaces for rent.
1. Current Trends in Mumbai's Commercial Real Estate Market:
The commercial real estate market in Mumbai is shaped by various trends that reflect the city's economic vibrancy and growth. One prominent trend is the rising demand for flexible office spaces, driven by startups, freelancers, and established companies seeking agility and cost-effectiveness. Co-working spaces, in particular, have gained popularity, offering businesses the flexibility to scale up or down based on their needs. This trend aligns with the global shift toward more dynamic and collaborative work environments.
2. Key Considerations for Businesses Seeking Office Spaces:
Businesses navigating the commercial real estate landscape in Mumbai must carefully consider several factors to align their office space choices with strategic objectives. Proximity to key clients, industry clusters, and transportation hubs is crucial. Additionally, understanding the local regulatory environment, lease terms, and market dynamics helps businesses make informed decisions. Accessibility, infrastructure, and the overall business ecosystem in a particular area are pivotal considerations for businesses looking to establish or expand their presence in Mumbai.
3. Prominent Business Districts and Tech Hubs:
Mumbai is home to several prominent business districts and tech hubs that offer prime office spaces for rent in Mumbai. Areas like Bandra Kurla Complex (BKC), Lower Parel, Andheri, and Powai have emerged as sought-after locations for businesses across various industries. BKC, often considered Mumbai's financial district, houses corporate offices, financial institutions, and consulates, making it a premier business destination. Lower Parel, with its mix of commercial and residential spaces, is known for its vibrant atmosphere and creative industries. Andheri and Powai have become technology hubs, hosting a multitude of IT companies and startups.
4. The Rise of Co-Working Spaces:
Co-working spaces have revolutionized the way businesses approach office spaces in Mumbai. These shared workspaces offer flexibility, cost-effectiveness, and a collaborative environment that appeals to startups and freelancers. Companies can choose from a variety of co-working providers, each offering unique amenities and services. From shared desks and private offices to meeting rooms and networking events, co-working spaces in Mumbai cater to a diverse range of business needs. This trend reflects the changing dynamics of work culture, emphasizing collaboration, flexibility, and community building.
5. Tech Parks and Innovation Zones:
Mumbai's commercial real estate landscape is enriched by the presence of tech parks and innovation zones that foster technological advancements and business innovation. Companies in the technology sector often seek office spaces in areas like Mindspace IT Parks in Malad and Airoli Knowledge Park in Navi Mumbai. These tech parks provide state-of-the-art infrastructure, connectivity, and an ecosystem conducive to research and development. For businesses at the forefront of innovation, these zones offer an environment that encourages growth and collaboration.
6. Strategic Considerations for Small Businesses and Startups:
For small businesses and startups navigating Mumbai's commercial real estate landscape, strategic considerations take precedence. Budget constraints often drive decisions, leading businesses to explore shared office spaces, business incubators, and cost-effective commercial complexes. Areas like Andheri and Chakala cater to the needs of emerging businesses, offering a mix of affordability and accessibility. These spaces provide an entry point for startups to establish their presence in Mumbai's competitive business environment.
7. Sustainable and Wellness-Focused Office Spaces:
Mumbai's commercial real estate landscape is evolving to embrace sustainability and employee well-being. The emphasis on green buildings, energy efficiency, and wellness amenities is gaining traction. Businesses are increasingly prioritizing office spaces that align with sustainability goals and contribute to the overall well-being of their workforce. This shift reflects a global awareness of the environmental impact of commercial spaces and the importance of fostering a healthy work environment.
In conclusion, navigating the commercial real estate landscape for office spaces in Mumbai requires a strategic and informed approach. The city's dynamic market, diverse business districts, and the rise of innovative office solutions present businesses with a range of options. Whether seeking traditional office spaces in established business districts or exploring the flexibility of co-working environments, businesses in Mumbai have the opportunity to align their office spaces with their unique needs and aspirations. By staying attuned to current trends, understanding key considerations, and exploring the variety of options available, businesses can find the perfect office space to thrive in Mumbai's bustling commercial landscape.
0 notes
yanashin-blog · 1 year
Text
Let's do Fly and Bun🚀
0. Sample Bun App
1. Install flycll
$ brew install flyctl
$ fly version fly v0.1.56 darwin/amd64 Commit: 7981f99ff550f66def5bbd9374db3d413310954f-dirty BuildDate: 2023-07-12T20:27:19Z
$ fly help Deploying apps and machines: apps Manage apps machine Commands that manage machines launch Create and configure a new app from source code or a Docker image. deploy Deploy Fly applications destroy Permanently destroys an app open Open browser to current deployed application Scaling and configuring: scale Scale app resources regions V1 APPS ONLY: Manage regions secrets Manage application secrets with the set and unset commands. Provisioning storage: volumes Volume management commands mysql Provision and manage PlanetScale MySQL databases postgres Manage Postgres clusters. redis Launch and manage Redis databases managed by Upstash.com consul Enable and manage Consul clusters Networking configuration: ips Manage IP addresses for apps wireguard Commands that manage WireGuard peer connections proxy Proxies connections to a fly VM certs Manage certificates Monitoring and managing things: logs View app logs status Show app status dashboard Open web browser on Fly Web UI for this app dig Make DNS requests against Fly.io's internal DNS server ping Test connectivity with ICMP ping messages ssh Use SSH to login to or run commands on VMs sftp Get or put files from a remote VM. Platform overview: platform Fly platform information Access control: orgs Commands for managing Fly organizations auth Manage authentication move Move an app to another organization More help: docs View Fly documentation doctor The DOCTOR command allows you to debug your Fly environment help commands A complete list of commands (there are a bunch more)
2. Sign up
$ fly auth signup
or
$ fly auth login
3. Launch App
Creating app in /Users/yanagiharas/works/bun/bun-getting-started/quickstart Scanning source code Detected a Bun app ? Choose an app name (leave blank to generate one): hello-bun
4. Dashboard
0 notes
cyberbenb · 1 year
Text
Russia’s war on Ukraine. Daily Snapshot. 06.07.2023
Snapshot of the day:
General, humanitarian:
Ukraine managed to return forty-five POWs and two children from Russian captivity.
The Russians struck Lviv during the night. Ukrainian air defense systems shot down 7 out of 10 missiles. A rocket hit a multi-story residential building in Lviv. 6 people were killed, and 40 were injured.
Military: 
The enemy’s maneuverability in Bakhmut is increasingly hindered.
The enemy’s command is preparing for the “Tavriya” operational grouping to reach the main defensive line, but also considers the counterattacks in the Novopokrovka area, which may alter their tactical situation.
The enemy command is making significant efforts to halt the advancement of the “Tavriya” grouping on the Pryiutne-Volodyne and Novozlatopil-Lyubimivka directions.
In the Stepove-Vyshneve-Novoukrainske area, the enemy command is assembling a strike group to launch counterattacks against the right flank of the “Tavriya” Operational Grouping, which is currently engaged in the liberation of Pryiutne.
The enemy’s “Zapad” Operational Group continues preparations for a renewed offensive on the Kupyansk and Lyman directions.
The concentration of the 68th and 80th tank regiments in the narrow area of Klishchiivka, Odradivka – Mykolaivka indicates the enemy’s preparation for a counterattack through the village of Andriivka, bypassing Klishchiivka from the southwest direction.
International:
Ukraine’s anti-corruption court has ruled to seize an An-140-100 aircraft belonging to Rostekh. Suupohjan Osuuspankki, a Finnish bank, allowed Russian billionaire Boris Rotenberg to withdraw funds shortly before the E.U. imposed sanctions.
Finland has announced the delivery of an additional security aid package worth €105 million, which includes anti-aircraft weapons and ammunition. The U.S. is expected to announce its provision of cluster munitions to Ukraine, while the Human Rights Watch has called for both Ukraine and Russia to cease the use of this type of ammunition. None of the three countries are signatories to international treaties that ban the use of cluster munitions.
Russia accused Finland of the “confrontational anti-Russian policy,” revoked permission for the Consulate General of Finland in St. Petersburg and declared nine diplomatic personnel from the embassy and the consulate general as “persona non grata.”
POWs
Ukraine has returned 45 Ukrainian defenders from Russian captivity, including members of the Armed Forces, National Guard, State Border Guard Service, and two civilians. Among them are two officers, 41 enlisted personnel, a civilian employee of Azovstal, and a volunteer from Kherson.
Additionally, Ukraine was able to bring back two children (a 6-year-old boy and a 10-year-old girl) who had been unlawfully taken to Russia along with their mother, a military medic, who had been released earlier.
Russian Attacks
Russia attacked Lviv with “Kalibr” missiles. The launches were made from the Black Sea. Ukrainian air defense systems shot down 7 out of 10 missiles; however, there was an impact on the center quarter of Lviv (near the UNESCO-protected historical area).  
“This is the most devastating attack on the civilian population in Lviv Oblast since the start of the full-scale war,” said Maxym Kozitskyi, the head of the Lviv Regional State Administration.
One residential multi-apartment building was destroyed, and 35 sustained damage. According to the latest information, six people have died, and 40 have been injured. The youngest girl who died overnight was only 21 years old. The oldest victim was 95 years old.
The destruction of over 250 apartments, ten dormitories, a children’s home, two schools and a sanatorium school was reported.
One substation in Lviv has been damaged, leaving 150 customers without electricity.
In a statement during the national telethon, the spokesperson of the Air Force Command, Yuriy Ignat, said that the “Kalibr” missiles initially flew towards Kyiv but then sharply diverted towards Lviv: “The missiles launched from the Black Sea initially flew north, utilizing the terrain relief and the course of the Dnipro River, and then sharply changed course to the west.” In this context, Ignat emphasized once again that the F-16 could have helped prevent this: “This aircraft is part of the Air Defense System. It is designed to intercept airborne targets such as kamikaze drones and cruise missiles.”
Operational situation (as of the morning 06.07.2023)
General conclusion: 
The enemy’s maneuvering within Bakhmut is becoming more difficult.
The enemy’s command anticipates the potential advancement of the Ukrainian “Tavriya” operational grouping towards the main defensive line. However, they also consider that Russian counterattacks in the Novopokrovka area could affect the overall tactical situation.
The enemy command is making significant efforts to halt the advancement of the “Tavriya” grouping forces on the Pryiutne-Volodyne and Novozlatopil-Lyubimivka directions.
In the Stepove-Vyshneve-Novoukrainske area, the enemy command is concentrating a strike group for counterattacks on the right flank of the “Tavriya” Operational Grouping, which is attempting to liberate Pryiutne.
Change in the line of contact (LoC):  
There have been over 40 combat clashes in various directions. 
On the Kupyansk direction, the enemy continues its attempts to advance in the area of Novoselivka and Novovodyanе in Luhansk Oblast. Ukrainian defenders are holding the defense steadfastly and have repelled all enemy attacks.
On the Lyman direction, the enemy attempted to displace Ukrainian forces from positions in the area of Novoyehorivka in Luhansk Oblast but was unsuccessful. They also unsuccessfully attacked the Defence Forces’ positions south of Dibrova, in the area of Serebryansk Forest, Hryhorivka, and Yampil.
The Defense Forces made two unsuccessful breakthrough attempts near Makiyivka; units of the Russian Airborne Forces repelled the assault on Defence Forces units at the Torsk bulge.
On the Bakhmut direction, Ukrainian defenders have successfully repelled enemy attacks in the areas south of Berkhivka, Bohdanivka, and Orikhovo-Vasylivka in Donetsk Oblast. They continue to attack further south and north of the city of Bakhmut. They have consolidated their positions, advanced southwest of Berkhivka, west of Yahidne, and southwest of Bakhmut. They are storming enemy positions on the northern approaches to Bakhmut and have liberated a critical height near Klishchiivka. 
Units of the enemy’s 72nd and 57th separate motorized rifle brigades are attempting to hold their positions along the Klishchiivka-Kurdyumivka line. The enemy’s command hastily concentrates reserves in their rear areas to secure the T-0513 road Bakhmut-Horlivka.
On the Avdiivka direction, the Defense Forces continue to hold back the Russian forces’ advance in the area of Avdiivka. They have repelled all enemy attacks in the Maryinka area and have made progress west of Vesele. They have also captured enemy positions north of Opytne. 
Russian forces have attempted 17 unsuccessful assaults in the Maryinka direction and repelled 9 Ukrainian attacks near Pervomaiske, Pivnichne, Nevelske, and Krasnohorivka. 
Zaporizhzhia direction: 
Melitopol direction (Pyatykhatky): Russian forces repelled an attack by the 128th separate mountain assault brigade near Zherebyanky. Russian forces have advanced to positions south of Pyatykhatky.
Tokmak direction (Robotyne): Ukrainian small assault groups attacked Russian positions near Robotyne, Nesteryanka, and Kopani. The enemy remains determined to counterattack the left flank of the “Tavriya” Operational Grouping, which is continuing its advance towards Novodanylivka – Novoprokopivka. Units of the 38th separate motorized rifle brigade of the enemy, supported by a consolidated detachment of the 22nd separate SOF brigade and the 3rd BARS detachment, consistently attacked the positions of the forward units of the “Tavriya” grouping between Novopokrovka and the T-0803 road. They were able to advance westward by 1-1.5 km.
Berdyansk direction (Velyka Novosilka): Russian forces repelled minor Ukrainian attacks near Staromayorsk and Urozhaine. Units of the Ukrainian “Tavria” Operational Grouping launched an attack near Pryiutne, inflicting significant losses on the enemy, advancing to Novozlatopil from the northwest, while Russian forces attacked near Rivnopil.
On the Novozlatopil-Pryiutne section, the enemy deployed the 34th separate motorized rifle brigade of the 49th Army. The 336th separate marine brigade of the Baltic Fleet was partially withdrawn to the second echelon and is being deployed along the Pryiutne-Volodyne axis, likely to serve as a reserve in this direction. 
From the elevated positions south of Pryiutne (to the west of Remivka), the enemy employs artillery and tank fire to impede the progress of the “Tavriya” Grouping towards the village. In the Novozlatopil area, the enemy has reinforced their defensive capabilities by consolidating the combat formations of the 143rd motorized rifle regiment (127th motorized rifle division) with support from units of the 34th separate motorized rifle brigade. This consolidation has halted the advance of the forward units of the “Tavriya” grouping northwest of the village.
On the Kherson direction, the Defense Forces are maintaining their positions on the eastern bank of the Dnipro River. The Russian forces are carrying out reconnaissance of Ukrainian positions using small reconnaissance groups on boats. They have regained control over previously lost positions on the eastern bank of the Dnipro, which were affected by the flooding caused by the destruction of the Kakhovka HPP dam. The units of the 126th separate coastal defense brigade of the 22nd Army Corps and the 205th separate motorized rifle brigade of the 49th Army are persistently attempting to displace Ukrainian forces from their positions near Antonivskyi Bridge.
The Defense Forces managed to transfer two small reinforcement groups from the western bank.
Change in enemy disposition: 
In Maryinka, units of the 78th motorized rifle regiment of the 42nd motorized rifle division (Chechen formation “Akhmat-Sever(North)”) and the 58th Army of the Southern Military District are operating.
Units of the 155th separate marine brigade of the Pacific Fleet and the 39th separate motorized rifle brigade (the 68th Army Corps of the Eastern Military District) launched an assault on Ukrainian positions near Mykilske. Artillery units of the 39th separate motorized rifle brigade were spotted in the area of Maryinka.
The battalions of the 1430th motorized rifle regiment of the Russian Territorial Forces have reinforced the first line by occupying positions between Robotyne and Verbove, between the 291st and 70th motorized rifle regiments. The enemy’s 810th separate marines brigade has completed deployment along the Myrne-Kopani line, supporting the enemy’s 503rd motorized rifle regiment, which is defending on both sides of Nesteryanka.
The 14th detachment of the BARS “Sarmat” has concentrated on the enemy’s main defense line, west of Verbove.
The Russian Armed Forces have formed the 25th Army in the Central Military District and the 40th Army Corps in the Southern Military District. It is planned to include in the composition of the 25th Army a motorized rifle division, two separate motorized rifle brigades, and one separate tank brigade, and in the 40th Army Corps a motorized rifle division and a separate motorized rifle brigade.
In the rear areas beyond the Klishchiivka-Kurdyumivka frontier, the following units are being concentrated: the 83rd separate airborne assault brigade (Zaitseve), the 68th tank regiment of the 150th motorized rifle division (east of Klishchiivka), the 80th tank regiment of the 90th tank division (Odradivka – Mykolaivka), the 1307th motorized rifle regiment of the Territorial Forces (Ivangrad – Zaitseve), and the 13th detachment of the BARS “Russkiy Legion” (Odradivka – Andriivski Stavky).
Escalation Indicators: 
In the Bakhmut area, the enemy uses artillery shells loaded with the toxic substance “luizit”.
Possible operation situation developments: 
The Defense Forces will continue the offensive on the Stepove-Vasylivka, Orikhiv-Tokmak, and Velyka Novosilka-Berdyansk directions.
The enemy command may be preparing a local counterstrike in the area between Hulyaipole and Velyka Novosilka and is preparing for counterattacks in the area of Zherebyanky.
As the Defense Forces advance towards the main defensive line of the enemy, the enemy command on the Zaporizhzhia direction will be forced to make a decision regarding the organization of defense either by consolidating the combat formations of the 49th and 58th Army or by reallocating reserves from other operational zones.
The enemy’s “Zapad” Operational Group continues preparations for a renewed offensive on the Kupyansk and Lyman directions.
The concentration of the 68th and 80th tank regiments in the narrow area of Klishchiivka, Odradivka – Mykolaivka indicates the enemy’s preparation for a counterattack through the village of Andriivka, bypassing Klishchiivka from the southwest direction.
Azov-Black Sea Maritime Operational Area: 
As of July 6, there were 6 enemy ships at sea, carrying “Kalibr” missiles. They were positioned near Crimea and the coast of the Taman Peninsula. Among them are four surface ships and two submarines. They carry up to 22 missiles on board. 
During the night of July 6, the enemy launched a strike from the sea towards Western Ukraine using 10 “Kalibr” missiles. Air defense systems intercepted 7 missiles, while 3 missiles hit Lviv. 
The enemy’s aviation continues flights over the sea from the Crimean airfields of Belbek, Saky, Dzhankoy, and Hvardiyske. To control the surface and air situation in the northwestern part of the Black Sea, eight fighter aircraft from the airfields of Saky and Belbek were involved: four Su-27/30 (Belbek), two Su-24MR, and two MiG-29 UK (Saky).
Air situation control and operational-tactical aviation management over the Azov Sea area were carried out by the A-50U Airborne Early Warning and Control (AEW&C) aircraft. 
An increase in aviation equipment is observed at the Dzhankoy airfield (Crimea): 4 Su-25 aircraft and 32 helicopters, including 5 Ka-52, 3 Mi-24, 9 Mi-28, and 15 Mi-8.
“The Grain Initiative” 
On Wednesday, July 5, according to Reuters, Russia stated that it had not made a final decision regarding the extension of the grain agreement, while the UN pledged to make every effort to extend the agreement until its expiration on July 17. Russia has consistently stated that it does not see any grounds for renewing the agreement after July 17 due to obstacles to its own grain and fertilizer exports. However, Peskov mentioned there is still time for the West to resolve these issues.
Russian operational losses from 24.02.22 to 06.07.23 
Personnel – almost 236,000 people (+600);
Tanks – 4,068 (+6);
Armored combat vehicles – 7,932 (+15);
Artillery systems – 4,310 (+22);
Multiple rocket launchers (MLRS) – 657 (+1);
Anti-aircraft warfare systems – 404 (+9);
Vehicles and fuel tanks – 6,888 (+23);
Aircraft – 315 (0);
Helicopters – 309 (0);
UAV operational and tactical level – 3,635 (+21);
Intercepted cruise missiles – 1,264 (0);
Boats/ships – 18 (0).
International 
Ukraine’s anti-corruption court has ruled to seize an An-140-100 aircraft belonging to Rostekh, a sanctioned Russian company, estimated to be worth $4 million. 
Suupohjan Osuuspankki, a Finnish bank, allowed Russian billionaire Boris Rotenberg to withdraw funds shortly before the E.U. imposed sanctions, according to Ilta-Sanomat. Despite the bank’s internal control service recommending against transferring funds to Rotenberg, a close associate of Putin, he managed to move an undisclosed amount of money, pledging not to send it to Russia or Belarus.
Finland has announced the delivery of an additional security aid package worth €105 million, which includes anti-aircraft weapons and ammunition. In total, Finland has provided Ukraine with assistance amounting to €1.2 billion, ranking ninth in terms of monetary value and seventh in terms of GDP contribution. Minister of Defense Antti Häkkänen stated that supporting Ukraine is crucial for Finland’s security since the war’s outcome will significantly impact the security order in Europe and Finland for many years to come. 
The U.S. is expected to announce its provision of cluster munitions to Ukraine, according to the NYT. However, Human Rights Watch has called for both Ukraine and Russia to cease the use of this type of ammunition. It is worth noting that neither the U.S., Russia, nor Ukraine are signatories to international treaties that ban the use of cluster munitions.
Russia made a demarche to the Finish Ambassador in Moscow, accusing the country of “confrontational anti-Russian policy” and “discrimination against Russians on the basis of national origin in the issuance of entry visas, creating obstacles to the normal operation of Russian missions in this country, including the reduction of their staff by declaring employees “persona non grata.” Russians expressed their dissatisfaction with the “parameters of Finland’s entry into NATO,” which was called a “threat to the security” of Russia, and accused the Finns of “encouraging the Kyiv regime to go to war and pumping it with Western weapons means clearly hostile actions against our country.” As a result, Moscow revoked permission for the Consulate General of Finland in St. Petersburg and declared nine diplomatic personnel from the embassy and the consulate general as “persona non grata.”
Dear CDS Daily Brief subscribers, as we announced earlier, we will transition from email distribution to Substack, providing you with a better experience and new features.
We will continue distributing the CDS Daily Brief via email and website during the initial test period as we gradually transition to the Substack platform. We will also post links to our Substack account in our email newsletters for your convenience. https://cdsdailybrief.substack.com/
We encourage you to subscribe to our Substack account by clicking the link. By doing so, you will be able to access our newsletter on Substack and enjoy a range of new features, including the ability to search and browse past newsletters, comment on articles, and connect with other subscribers.
We appreciate your continued support and look forward to sharing our updates and insights with you on this new platform.
If you have any questions or concerns about this transition, please don’t hesitate to contact us.
Centre for Defence Strategies (CDS) is a Ukrainian security think tank. We operate since 2020. We publish this brief daily. If you would like to subscribe, please send us an email at [email protected]
The CDC Daily Brief is produced with the support of the Kyiv School of Economics https://kse.ua/
Please note, that we subscribe only verified persons and can decline or cancel the subscription at our own discretion
We are an independent, non-government, non-partisan, and non-profit organisation. More at www.defence.org.ua
Our Twitter (in English) – [twitter.com/defence_c...](https://twitter.com/defence_centre)
Our Facebook (in Ukrainian) – [www.facebook.com/cds.UA](https://www.facebook.com/cds.UA)
Our brief is for information only and we verify our information to the best possible extent
Запис Russia’s war on Ukraine. Daily Snapshot. 06.07.2023 спершу з'явиться на Центр оборонних стратегій.
0 notes
damekraft · 1 year
Text
Email Answers to Recruiters
In the past year, I have had extensive experience with both self-managed Kubernetes on AWS and Amazon EKS. I was a hands-on manager for the architecture, feature development, daily operations and on-call support for EKS kubernetes clusters as well as the lifecycle maintenance, daily operations and on-call support of the Self Managed Kubernetes clusters. I lead a team of 7 software engineers and a manager performing in a principal, manager, director and individual contributor role helping design, develop, implement and operate a hybrid Kong Service Mesh (envoy as the proxy layer) into Kubernetes supporting both the legacy self managed clusters and the EKS clusters by delivering dynamic service mesh capabilities across the physical datacenter and AWS compute platforms running Nordstrom.
I started working with service mesh technologies in 2014 at HomeAway, but my experience with load balancing and application routing at the network layer goes back to 2006. I have extensive experience with layer 7 application routing going back 17 years and I have remained consistently up to date through that entire evolution. The advent of memory resident virtual networking was an incredible evolution to the network industry and I began my work in that space with CloudStack and VMware early on, and quickly moved to Hashicorp Consul in 2014 when Hashicorp began releasing world-changing technologies. I was lucky to be at the ground floor of Consul launching  to be able to provide direct feedback to the founder and help shape what the product is today. I worked with a group of early platform engineers to begin testing linkerd and and istio, and my latest work has been with Kong Service
In 2014 at HomeAway, I was part of a peer team of principal engineers who came together to design, develop and deliver a service mesh to the organization. We worked with the wider organization in an ad-hoc format sharing high level design and possibility models of what services we could unlock using our proposed service mesh design and asked for feedback from the enterprise and product principals and "bright lights" across the company regarding our proposal. At the beginning we rolled out Consul as it was the only product that met our needs at the time. Eventually as we gained more feedback and learning we moved off consul and onto linkerd using existing operational change management processes and decided at that time to evaluate istio alongside linkerd for a year before being clearly informed directly by google that istio would not be mature enough to scale to our needs in the time frame we needed for our fully scaled operations requirements. 
I was fortunate HomeAway as a company was so forward looking in 2014 to understand the value of the service mesh. We were able to land quickly on a product and move to delivery, so much of my broader product and program outreach work there was not confrontational, rather curious and excited. The culture there allowed me to focus a lot of time on the post decision evangelizing work using lunch and learn presentations to principals and directors across home away to go over our solution and provide ample time for Q&A and feedback, led decisively so that we could bias for as much action as possible within an hour. 
As we moved through implementation and operational maturity, we provided weekly updates via the devOps meetings and I gave executive level presentations every week at the executive technology update meetings. We also set up weekly office hours meetings for hands-on demonstrations as well as provide extensive pairing across the dev organization held in a set of private conference rooms we reserved for the service mesh project where we could "talk shop" with teams for as long as needed to work through whatever obstacles came up. I spent considerable time working extensively with an application edge gateway team that I had proposed funding and organization support for in order to help the engineers understand the service and application edge architecture helping mentor and guide them. I also provided ongoing support to these engineers as they hired out and built their team over a 12 month period.
When I was at Nordstrom we used their design review process to deploy Kong Service Mesh. The design review process at Nordstrom was a very mature, highly publicized and well-attended process of meetings and demonstrations where principals across Nordstrom were able to provide feedback and questions into a formalized process of decision making. With precision I led the team through the design review process which culminated into a well-rehearsed final presentation that worked much like delivering a master's thesis. We followed and passed the design review process and moved to weekly meetings with the principals to show our implementation work and provide usable demonstrations in accordance with program and product timelines for deliverables. We socialized our service mesh program using Product and Program meeting schedules to showcase our technologies on a biweekly basis to the larger organization. If any conflicts emerged from those conversations, we were then able to go back to the design review board and follow a well-established change management process to resolve any design conflicts that had surfaced as part of the broader awareness campaigns. Another tactic we followed was identifying early adopter candidates and working with them in a tightly integrated series of agile sprints to test and learn with those organizations and then invite them along to our product and program meetings to directly talk to the wider organization about their positive and negative experiences with our service mesh product.
0 notes
Text
Aunt Marguerita’s Shawl
Tumblr media Tumblr media
Brussels lace shawl (GTC 8905)
These photographs show details of a beautiful black Brussels lace shawl donated to the Collection in 1959 by Rachel’s cousin, Mrs Dolores Marguerita Shennan, née Parish (1867-1960), who was always known as “Lola”.
Dating from the 1850s, the large shawl measures 1910 x 1900 cm and originally belonged to Lola’s mother, Marguerita Parish. Designed to be worn over the fashionable crinoline dresses, it would have been very expensive when new. Rachel was a skilled lace maker herself, and her descriptions (both on the label and in the Accession Register) emphasise the high quality and fine workmanship of this shawl:-
“Mid XIX century. Superb black Bobbin Brussels shawl… Magnificent design. The border has 3 open flowers edging a scroll alternating with a lovely vine leaf (6” across)….In the centre medallions & superb sprays of flowers make an exquisite pattern…. All the design is in “linen” or whole stitch with a trolley outline over a very fine even bobbin net”
Lola Shennan was Lady Blanche’s niece; the only daughter of her older half-brother, Francis Woodbine-Parish (1824-1906) and his wife, Margaret Miller (1841-1926). Both of Lola's parents were born in Buenos Aires, Argentina and married there in 1855. Lola’s mother was always known in the family as “Aunt Marguerita” - presumably as an acknowledgement of her South American background.
The Woodbine Parish connections with Argentina dated from 1823, when Rachel’s grandfather, Sir Woodbine Parish (1796-1882), was appointed as the British Consul General for Buenos Aires. Sir Woodbine left Argentina in 1832, but his son Francis (known as Frank) was also in the diplomatic service, and would follow in his father's footsteps. Frank first served in China, and then became the Consul General in Buenos Aires in 1853, and Consul from 1861-73.
In the 1860s, British companies built the two largest railways in Argentina, the Central and the Southern; and Frank became involved with the financing of the Buenos Aires Great Southern Railway. This venture proved very successful and Frank amassed a large fortune. He was a greatly respected businessman, and was still the Chairman of the London Board of the company in 1898 - although by then in his seventies. His son-in-law, David Shennan, was also a Director of the company.
Frank Parish retired from the diplomatic service due to ill health in 1873. He returned to England, where he lived at 5 Gloucester Square, Hyde Park - a very prestigious London address. It was listed on the 1911 Census as a 20 roomed house, and the staff included a butler, footman and cook, and several maids.
Tumblr media
Photograph from one of Rachel’s albums, at Barbon in August, 1902. Lola Shennan is the lady in the centre and her husband, David, is to the left of her. Three of the men are obviously dressed for a shoot. Barbon was originally built as a “shooting box” and was used for entertaining family and friends. (GTC Archives)
Lola’s marriage to David Anderson Shennan would continue the Argentinian family connections, as David was the owner of the Estancia Negretti, near Buenos Aires. When they married in May, 1891 at Lancaster Gate, London, Rachel’s eldest sister, Angela, was one of the bridesmaids. Lord and Lady Shuttleworth appeared on the guest lists in the newspapers.
Lola’s wedding ensemble was described as:-
“a very handsome dress, the petticoat being of satin duchesse festooned around the hem with old Brussels lace (the gift of her mother, who wore it on the occasion of her own marriage) caught with silver bows; the Court train and Louis coat bodice were of white and silver brocade in a design of true-lovers’ knots, the former being bordered down one side with the same exquisite lace and silver bows, and the latter edged all round with narrow passementerie, and finished with ruffles of old lace. Clusters of real orange blossom were worn in the hair, with a tulle veil, attached by three diamond stars, her other jewels being pearls. (John Bull, 9 May 1891)
Lola also donated her “Louis coat bodice” to the Collection, but sadly the lace ruffles and silver bows have all been unpicked and removed, presumably for re-use. Rachel recorded on the label for the bodice that she and her younger brother, Lawrence, wore black velvet outfits to the wedding - they would have been only five and four years old.
David and Lola had three sons: Douglas Francis, born in 1892: Kenneth Gordon in 1894 and Malcolm David, 1897. Sadly, two sons were to die very young - Malcolm died in 1914, aged sixteen, and Douglas was killed in action near Ypres in 1915, aged twenty four.
David Shennan was sixteen years older than Lola, and he died in 1919, leaving the present day equivalent of £18.7 million. Lola was a widow for over forty years, until her death in 1960.
Tumblr media Tumblr media
Above: Portrait of Lola taken by the famous society photographer, Dorothy Wilding, who had very successful studios in both London and New York, and included theatre and movie stars among her clients. Although undated, the reverse of this photograph lists the studio address as 22 Old Bond Street; Wilding had moved there in 1923, and Lola’s hairstyle would suggest a date of the 1920s to 1930s.
(Photograph courtesy of the Newbery family)
Lola's choice of photographer gives an indication of her high social status. Dorothy Wilding (1892-1976) was appointed as the official photographer for the 1937 Coronation - she had previously photographed the Royal family and they approved of her work. In addition, Dorothy's formal portraits of the young Queen Elizabeth II on her accession in 1952, were used for the design of the new postage stamps, coins and banknotes.
The National Portrait Gallery holds the surviving archive of Dorothy's photographs. Sadly, the Bond Street studio was destroyed in the Blitz, with the loss of her pre-war negatives and prints.
Jane H
0 notes
computingpostcom · 2 years
Text
Motivation The management of secrets in an organisation holds a special place in the running of day to day activities of the business. All the way from access to the building down to securing personal and confidential documents in laptops or computers, secrets continually show up which speaks about the importance secrets wield not only in our personal lives but in the highways of businesses. A secret is anything that you want to tightly control access to, such as API encryption keys, passwords, or certificates. Taking it away from there, most applications in the current era are going towards the micro-services way and Kubernetes has come strong as the best platform to host the applications designed in this new paradigm. Kubernetes brought about new opportunities and a suite of challenges at the same time. It brought about agility, self healing, ease of scalability, ease of deployment and a good way of running decoupled systems. Now comes the issue of secrets and Kubernetes provides a way of managing them natively. The only problem with it is that it works if the workloads being run are few or the team managing the cluster is relatively small. When the applications being spawned are in the range of hundreds, it becomes difficult to manage secrets in that manner. Moreover, the native Kubernetes secrets engine lacks the capability of encryption which brings an issue of security to the fore. HashiCorp Vault is a secrets management solution that is strongly designed to provide the management of secrets at scale, with ease and it integrates well with a myriad of other tools Kubernetes included. It is an identity-based secrets and encryption management system. Let us see the features Vault comes with: Features of Vault The key features of Vault are: Source Vault Documentation Secure Secret Storage: Arbitrary key/value secrets can be stored in Vault. Vault encrypts these secrets prior to writing them to persistent storage, so gaining access to the raw storage isn’t enough to access your secrets. Vault can write to disk, Consul, and more. Dynamic Secrets: Vault can generate secrets on-demand for some systems, such as AWS or SQL databases. For example, when an application needs to access an S3 bucket, it asks Vault for credentials, and Vault will generate an AWS key-pair with valid permissions on demand. After creating these dynamic secrets, Vault will also automatically revoke them after the lease is up. Data Encryption: Vault can encrypt and decrypt data without storing it. This allows security teams to define encryption parameters and developers to store encrypted data in a location such as SQL without having to design their own encryption methods. Leasing and Renewal: All secrets in Vault have a lease associated with them. At the end of the lease, Vault will automatically revoke that secret. Clients are able to renew leases via built-in renew APIs. Revocation: Vault has built-in support for secret revocation. Vault can revoke not only single secrets, but a tree of secrets, for example all secrets read by a specific user, or all secrets of a particular type. Revocation assists in key rolling as well as locking down systems in the case of an intrusion. Project Pre-requisites BitBucket account BitBucket Pipelines already setup Docker or any tool to create images like Podman, Buildah etc Existing Google Cloud Credentials (json) in BitBucket Environment variable An existing Google Cloud Bucket for Terraform Backend (where it will keep state) We will create terraform scripts, push it to BitBucket whence BitBucket pipelines will take over and deploy vault in Google Kubernetes Engine (GKE) using the image we will build. Installation of Vault Cluster in Google Kubernetes Engine We can now embark on setting up Vault on an existing Google Kubernetes Engine via Helm, BitBucket pipelines and Terraform. The following are the steps that will get you up and running. Some parts are optional in case you do not use BitBucket pipelines in your setup.
Step 1: Prepare Terraform and Google SDK Image In this step we are going to create a Docker image that has Terraform and Google Cloud SKD and then host it in DockerHub so that BitBucket can pull and use it while deploying the infrastructure. First let us create Dockerfile file and populate it with the following. We will use Google’s cloudsdk image as the base then add Terraform. $ vim Dockerfile FROM gcr.io/google.com/cloudsdktool/cloud-sdk:alpine ENV TERRAFORM_VERSION=1.0.10 # Installing terraform RUN apk --no-cache add curl unzip && \ cd /tmp && \ curl -o /tmp/terraform.zip https://releases.hashicorp.com/terraform/$TERRAFORM_VERSION/terraform_$TERRAFORM_VERSION_linux_amd64.zip && \ unzip /tmp/terraform.zip && \ cp /tmp/terraform /usr/local/bin && \ chmod a+x /usr/local/bin/terraform && \ rm /tmp/terraform /tmp/terraform.zip After that, let us build and tag the image. Make sure the Dockerfile file is in the same place you are running this command. docker build -label imagename . Tag the image docker tag imagename penchant/cloudsdk-terraform:latest Then push it to public DockerHub or any registry you prefer docker push penchant/cloudsdk-terraform:latest And we are done with the first part Step 2: Prepare Terraform and Helm scripts In order to avoid re-inventing the wheel, this project heavily borrows from a project already in GitHub by mohsinrz. We are grateful and celebrate them for the fine work they have done. We will clone the project and then customise it to befit our environment. cd ~ git clone https://github.com/mohsinrz/vault-gke-raft.git Since we already have a GKE Cluster, we will not use the module geared towards creating one. We will further disable the use of certificates because BitBucket uses an ephemeral container and will not be able to store certificates in it and we will have trouble joining vault workers to the leader later. We will add GCP bucket to store Terraform state so that we can track changes in the what we will be deploying. Add the following in the “main.yaml” file. Ensure that the bucket name already exists in GCP. $ cd ~/vault-gke-raft $ vim main.tf ## Disable the gke cluster module if you have on already #module "gke-cluster" # source = "./modules/google-gke-cluster/" # credentials_file = var.credentials_file # region = var.region # project_id = "project-id" # cluster_name = "dev-cluster-1" # cluster_location = "us-central1-a" # network = "projects/$var.project_id/global/networks/default" # subnetwork = "projects/$var.project_id/regions/$var.region/subnetworks/default" # initial_node_count = var.cluster_node_count # module "tls" source = "./modules/gke-tls" hostname = "*.vault-internal" module "vault" source = "./modules/gke-vault" num_vault_pods = var.num_vault_pods #cluster_endpoint = module.gke-cluster.endpoint #cluster_cert = module.gke-cluster.ca_certificate vault_tls_ca = module.tls.ca_cert vault_tls_cert = module.tls.cert vault_tls_key = module.tls.key terraform backend "gcs" bucket = "terraform-state-bucket" credentials = "gcloud-api-key.json" Another modification we shall make is disable TLS because in our setup, an ephemeral container in BitBucket will provision our infrastructure and some of the certificates are meant to be stored where terraform is running. So we get to lose the certificates after the deployment is done. To disable, navigate to the modules folder and into the vault directory module. Then edit the “vault.tf” file and make it like below. Changes made are: we changed tlsDisable field to true from false we changed VAULT_ADDR environment variable from https to http
we commented/removed VAULT_CACERT environment variable we changed tls_disable field from 0 to 1 we changed VAULT_ADDR from 127.0.0.1 to 0.0.0.0 And removed the certificate paths under listener block The same has been updated in the file below. $ cd ~/vault-gke-raft/modules/vault $ vim vault.tf resource "helm_release" "vault" ui = true listener "tcp" #changed tls_disable field from 0 to 1 #tls_disable = 0 tls_disable = 1 address = "[::]:8200" cluster_address = "[::]:8201" #removed the certificate paths here #tls_cert_file = "/vault/userconfig/vault-tls/vault.crt" #tls_key_file = "/vault/userconfig/vault-tls/vault.key" #tls_client_ca_file = "/vault/userconfig/vault-tls/vault.ca" storage "raft" path = "/vault/data" ui: enabled: true serviceType: "LoadBalancer" serviceNodePort: null externalPort: 8200 EOF ] We will make one more modification that will enable Kubernetes provider to communicate with GKE API. Navigate to the modules folder and into the vault module directory. Then edit the “provider.tf” file. We have added details of the GKE cluster that already exists and used the values in the Kubernetes provider. We commented the one that we fetched from the repo and added the new one as shown below. The helm provider has been edited as well by updating the host, token and cluster ca certificate with what already exists. $ cd ~/vault-gke-raft/modules/vault $ vim provider.tf data "google_client_config" "provider" data "google_container_cluster" "cluster-name" name = "cluster-name" location = "us-central1-a" project = "project-name" # This file contains all the interactions with Kubernetes provider "kubernetes" #host = google_container_cluster.vault.endpoint host = "https://$data.google_container_cluster.dev_cluster_1.endpoint" token = data.google_client_config.provider.access_token cluster_ca_certificate = base64decode( data.google_container_cluster.dev_cluster_1.master_auth[0].cluster_ca_certificate, ) #provider "kubernetes" # host = var.cluster_endpoint # token = data.google_client_config.current.access_token # # cluster_ca_certificate = base64decode( # var.cluster_cert, # ) # provider "helm" kubernetes #host = var.cluster_endpoint host = "https://$data.google_container_cluster.dev_cluster_1.endpoint" #token = data.google_client_config.current.access_token token = data.google_client_config.provider.access_token cluster_ca_certificate = base64decode(data.google_container_cluster.dev_cluster_1.master_auth[0].cluster_ca_certificate, ) After we are done editing the files, let us clone vault-helm in the root directory that will deploy the entire infrastructure for us at a go via terraform helm provider cd ~/vault-gke-raft git clone https://github.com/hashicorp/vault-helm Step 3: Create BitBucket pipelines file In this step, we are going to create and populate the BitBucket pipelines file that will steer our deployment. As you can see, we are using the image we pushed to DockerHub in Step 1. $ cd ~ $ vim bitbucket-pipelines.yaml image: penchant/cloudsdk-terraform:latest ## The image pipelines: branches: vault: - step: name: Deploy to Vault Namespace deployment: production script: - cd install-vault # I placed my files in this directory in the root of the files - export TAG=$(git log -1 --pretty=%h) - echo $GCLOUD_API_KEYFILE | base64 -d > ./gcloud-api-key.json - gcloud auth activate-service-account --key-file gcloud-api-key.json - export GOOGLE_APPLICATION_CREDENTIALS=gcloud-api-key.json - gcloud config set project - gcloud container clusters get-credentials --zone= --project - terraform init
- terraform plan -out create_vault - terraform apply -auto-approve create_vault services: - docker Step 4: Initialise cluster by creating the leader node/pod After installing vault cluster via terraform and helm, it is time to bootstrap the cluster and unseal it. Initialise the cluster by making vault-0 node as the leader then we can unseal it and then later join the rest of the nodes to the cluster and unseal them as well. Initialize the cluster by making node vault-0 as the leader as shown follows: $ kubectl exec -ti vault-0 -n vault -- vault operator init Unseal Key 1: 9LphBlg31dBKuVCoOYRW+zXrS5zpuGeaFDdCWV3x6C9Y Unseal Key 2: zfWTzDo9nDUIDLuqRAc4cVih1XzuZW8iEolc914lrMyS Unseal Key 3: 2O3QUiio8x5W+IJq+4ze45Q3INL1Ek/2cHDiNHb3vXIz Unseal Key 4: DoPBFgPte+Xh6L/EljPc79ZT2mYwQL6IAeDTLiBefwPV Unseal Key 5: OW1VTaXIMDt0Q57STeI4mTh1uBFPJ2JvmS2vgYAFuCPJ Initial Root Token: s.rLs6ycvvg97pQNnvnvzNZgAJ Vault initialized with 5 key shares and a key threshold of 3. Please securely distribute the key shares printed above. When the Vault is re-sealed, restarted, or stopped, you must supply at least 3 of these keys to unseal it before it can start servicing requests. Vault does not store the generated master key. Without at least 3 keys to reconstruct the master key, Vault will remain permanently sealed! It is possible to generate new unseal keys, provided you have a quorum of existing unseal keys shares. See "vault operator rekey" for more information. Now we have the keys and the root token. We will use the keys to unseal the nodes and join every node to the cluster. Step 5: Unsealing the leader node/pod We will use the unseal keys from the output of above command in Step 4 to unseal Vault as shown below. Run the command three times and supply the keys in the order they have been generated above. After running the command, you will be presented with a prompt where you are required to enter one of the seals generated above. Simply copy and paste one of them and hit enter. $ kubectl exec -ti vault-0 -n vault -- vault operator unseal Unseal Key (will be hidden): Key Value --- ----- Seal Type shamir Initialized true Sealed true Total Shares 5 Threshold 3 Unseal Progress 1/3 Unseal Nonce f4c34433-6ef1-59ca-c1c9-1a6cc0dfabff Version 1.8.4 Storage Type raft HA Enabled true Run it the second time $ kubectl exec -ti vault-0 -n vault -- vault operator unseal Unseal Key (will be hidden): Key Value --- ----- Seal Type shamir Initialized true Sealed true Total Shares 5 Threshold 3 Unseal Progress 2/3 Unseal Nonce f4c34433-6ef1-59ca-c1c9-1a6cc0dfabff Version 1.8.4 Storage Type raft HA Enabled true Run it again the third time $ kubectl exec -ti vault-0 -n vault -- vault operator unseal Unseal Key (will be hidden): Key Value --- ----- Seal Type shamir Initialized true Sealed false Total Shares 5 Threshold 3 Version 1.8.4 Storage Type raft Cluster Name vault-cluster-3d108027 Cluster ID a75de185-7b51-6045-20ca-5a25ca9d9e70 HA Enabled true HA Cluster n/a HA Mode standby Active Node Address Raft Committed Index 24 Raft Applied Index 24 For now, we have not added the remaining four nodes/pods of vault statefulsets into the cluster. If you check the status of the pods, you will see the they are not ready. Let us confirm that. $ kubectl get pods -n vault NAME READY STATUS RESTARTS AGE vault-0 1/1 Running 0 14m
vault-1 0/1 Running 0 14m vault-2 0/1 Running 0 14m vault-3 0/1 Running 0 14m vault-4 0/1 Running 0 14m vault-agent-injector-5c8f78854d-twllz 1/1 Running 0 14m As you can see, vault-1 through to vault-4 are not ready (0/1) Step 6: Add the rest of the nodes to the cluster and Unsealing them This is the step where we are going to add each one of them to the cluster step by step. The procedure is as follows: Add a node to the cluster Then unseal it using the number of threshold shown in the status command above (kubectl exec -ti vault-0 -n vault — vault status). It is 3 in this example. This means we will run the unseal command three times for each node. When you are unsealing, use the same keys that we used for the node 1 above. Let us get rolling. Join the other nodes to the cluster starting with vault-1 node. $ kubectl exec -ti vault-1 -n vault -- vault operator raft join --address "http://vault-1.vault-internal:8200" "http://vault-0.vault-internal:8200" Key Value --- ----- Joined true After it has successfully joined, unseal the node three times. ## First Time $ kubectl exec -ti vault-1 -n vault -- vault operator unseal Unseal Key (will be hidden): Key Value --- ----- Seal Type shamir Initialized true Sealed true Total Shares 5 Threshold 3 Unseal Progress 1/3 Unseal Nonce 188f79d8-a87f-efdf-4186-73327ade371a Version 1.8.4 Storage Type raft HA Enabled true ## Second Time $ kubectl exec -ti vault-1 -n vault -- vault operator unseal Unseal Key (will be hidden): Key Value --- ----- Seal Type shamir Initialized true Sealed true Total Shares 5 Threshold 3 Unseal Progress 2/3 Unseal Nonce 188f79d8-a87f-efdf-4186-73327ade371a Version 1.8.4 Storage Type raft HA Enabled true ## Third Time $ kubectl exec -ti vault-1 -n vault -- vault operator unseal Unseal Key (will be hidden): Key Value --- ----- Seal Type shamir Initialized true Sealed true Total Shares 5 Threshold 3 Unseal Progress 0/3 Unseal Nonce n/a Version 1.8.4 Storage Type raft HA Enabled true Then join node vault-2 to the cluster and then unseal it just like it was done in node vault-1 $ kubectl exec -ti vault-2 -n vault -- vault operator raft join --address "http://vault-2.vault-internal:8200" "http://vault-0.vault-internal:8200" Key Value --- ----- Joined true Unseal node vault-2 three times entering one of the 3 keys on each run ##First Time $ kubectl exec -ti vault-2 -n vault -- vault operator unseal Unseal Key (will be hidden): Key Value --- ----- Seal Type shamir Initialized true Sealed true Total Shares 5 Threshold 3 Unseal Progress 1/3 Unseal Nonce 60ab7a6a-e7dc-07c8-e73c-11c55bafc199 Version 1.8.4 Storage Type raft HA Enabled true ##Second time $ kubectl exec -ti vault-2 -n vault -- vault operator unseal Unseal Key (will be hidden): Key Value --- ----- Seal Type shamir Initialized true Sealed true Total Shares 5 Threshold 3 Unseal Progress 2/3 Unseal Nonce 60ab7a6a-e7dc-07c8-e73c-11c55bafc199 Version 1.8.4 Storage Type raft HA Enabled true ##Third Time $ kubectl exec -ti vault-2 -n vault -- vault operator unseal Unseal Key (will be hidden): Key Value --- -----
Seal Type shamir Initialized true Sealed true Total Shares 5 Threshold 3 Unseal Progress 0/3 Unseal Nonce n/a Version 1.8.4 Storage Type raft HA Enabled true Do the same for the remaining pods/nodes in your cluster that are still not ready. Simply check your pods as follows $ kubectl get pods -n vault NAME READY STATUS RESTARTS AGE vault-0 1/1 Running 0 14m vault-1 1/1 Running 0 14m vault-2 1/1 Running 0 14m vault-3 0/1 Running 0 14m vault-4 0/1 Running 0 14m vault-agent-injector-5c8f78854d-twllz 1/1 Running 0 14m The ones with 0/1 are not yet ready so join them to the cluster and unseal them. Add Node vault-3 $ kubectl exec -ti vault-3 -n vault -- vault operator raft join --address "http://vault-3.vault-internal:8200" "http://vault-0.vault-internal:8200" Key Value --- ----- Joined true Unseal Node vault-3 three times again. ##First Time $ kubectl exec -ti vault-3 -n vault -- vault operator unseal Unseal Key (will be hidden): Key Value --- ----- Seal Type shamir Initialized true Sealed true Total Shares 5 Threshold 3 Unseal Progress 1/3 Unseal Nonce 733264c0-bfc6-6869-a3dc-167e642ad624 Version 1.8.4 Storage Type raft HA Enabled true ##Second Time $ kubectl exec -ti vault-3 -n vault -- vault operator unseal Unseal Key (will be hidden): Key Value --- ----- Seal Type shamir Initialized true Sealed true Total Shares 5 Threshold 3 Unseal Progress 2/3 Unseal Nonce 733264c0-bfc6-6869-a3dc-167e642ad624 Version 1.8.4 Storage Type raft HA Enabled true ##Third Time $ kubectl exec -ti vault-3 -n vault -- vault operator unseal Unseal Key (will be hidden): Key Value --- ----- Seal Type shamir Initialized true Sealed true Total Shares 5 Threshold 3 Unseal Progress 0/3 Unseal Nonce n/a Version 1.8.4 Storage Type raft HA Enabled true Add Node vault-4 $ kubectl exec -ti vault-4 -n vault -- vault operator raft join --address "http://vault-4.vault-internal:8200" "http://vault-0.vault-internal:8200" Key Value --- ----- Joined true Unseal Node vault-4 three times once more. ##First Time $ kubectl exec -ti vault-4 -n vault -- vault operator unseal Unseal Key (will be hidden): Key Value --- ----- Seal Type shamir Initialized true Sealed true Total Shares 5 Threshold 3 Unseal Progress 1/3 Unseal Nonce 543e3a67-28f9-9730-86ae-4560d48c2f2e Version 1.8.4 Storage Type raft HA Enabled true ##Second Time $ kubectl exec -ti vault-4 -n vault -- vault operator unseal Unseal Key (will be hidden): Key Value --- ----- Seal Type shamir Initialized true Sealed true Total Shares 5 Threshold 3 Unseal Progress 2/3 Unseal Nonce 543e3a67-28f9-9730-86ae-4560d48c2f2e Version 1.8.4 Storage Type raft HA Enabled true ##Third Time $ kubectl exec -ti vault-4 -n vault -- vault operator unseal Unseal Key (will be hidden): Key Value --- ----- Seal Type shamir Initialized true Sealed true Total Shares 5 Threshold 3 Unseal Progress 0/3 Unseal Nonce n/a
Version 1.8.4 Storage Type raft HA Enabled true Now lets check our pods $ kubectl get pods -n vault NAME READY STATUS RESTARTS AGE vault-0 1/1 Running 0 32m vault-1 1/1 Running 0 32m vault-2 1/1 Running 0 32m vault-3 1/1 Running 0 32m vault-4 1/1 Running 0 32m vault-agent-injector-5c8f78854d-twllz 1/1 Running 0 32m Beautiful. You can see that all of them are successfully ready. And we are finally done with our vault ha cluster setup in GKE platform. Next, we shall cover how to authenticate to Kubernetes/GKE, create secrets then launch a sample app and inject secrets to the pod via sidecar model. Use Vault-Agent sidecar to inject Secrets in Vault to Kubernetes Pod We hope the document provides insight and has been helpful for your use case. In case you have an idea of how to auto-unseal, kindly point us in the right direction as well. Lastly, the tremendous support and messages we continue to receive is a blessing and we pray that you continue to prosper in your various endeavours as you change the world. Have an amazing end year season and keep at it, keep the safety and may your hard work yield the fruits you desire .
0 notes
consul-valerius · 3 years
Text
fuck it, more courtiers as a slightly functional polycule part two: the random headcanon edition 
Going out together is always. a. THING. everyone is very high maintenance in their own ways, which makes even picking a destination extremely difficult to begin with. lots of outdoor excursions as indoors lead to too many problems. 9/10 times Valdemar leaves the group, gets lost and sad, and comes running back right at the end. Valerius keeps a basket full of snacks to prevent Volta from also wandering off to find more food, but she always goes through them within the first five minutes of the date. Vlastomil spends most of the day preventing fights between strangers and Vulgora, and he’s also tasked with making sure Valerius doesn’t say something rude that results in him getting his ass beat. Somehow, they all have a good time ???? ???
In the same vein: they have a lot of tea parties!! they won’t call it that, but that’s what it is lmao lots of shit talking, lots of little arguments, a little bit of a mess every time. 
On the outside, everyone assumes they hate each other, and they will say as much, but they are all very sentimental and get genuinely upset if they think one of them is mad or upset with them. none of them are very good communicators, but they. try. 
Valerius has everyone’s favorite drinks and food memorized. He knows how they all take their tea and coffee too, and he prepares it for them before meetings (he notably leaves Nadia out of this and thinks it annoys her [it doesn’t]) 
They all have a very wide range of specific knowledge about each other. “Volta’s left big toe always cramps up when a storm is coming” “Valdemar prefers working in their lab right at dusk– we don’t know why” “Vlastomil uses his left hand to eat with but writes with his right hand” “Valerius has to smell every drink he has, even if it’s water” “Vulgora has a habit of falling asleep in the tub, so they can’t bathe alone.” that sorta shit. they relate this all to other people like it’s totally normal to have this all memorized, and in the same breath, will be like “yeah anyway I hate that guy (gnc) yeah”
I would honestly say, in terms of ranking their displays of romance/kissing/affection, from most to least affectionate it goes: Volta, Vlastomil, Valerius, Vulgora, and Valdemar. Volta really enjoys kissing their cheeks; Vlastomil kisses everyone’s heads because he’s the tallest; Valerius sneaks quick kisses to their hands; Vulgora just goes for the lips bro, what’s being subtle??; Valdemar, on occasion, will randomly give one of them an affectionate bite on the finger. 
Vlastomil and Valerius are the best gift givers, and Valdemar is the most greedy when it comes to receiving gifts. Volta does a lot of hand-made stuff though, and Vulgora prefers wooing them on dates/with their actions. 
113 notes · View notes
lochrannn · 2 years
Note
Re. the kisses prompts, I was secretly angling for that, lol! #13: frustrated kisses
Apologies this took so long to fill.
Filed for posterity in my underused drabble collection on AO3
-
After sending Diego off to join his brothers for Luther’s bachelor party, Lila goes to roam the halls of the Obsidian Hotel, investigating all the most interesting rooms, hoping to find some snazzy outfits for the wedding.
She finds a bunch of different suits, including one she’s considering for herself but when she stumbles across a black glittering minidress, her choice is made, but she takes the green velvet pantsuit anyway. Klaus might like it.
She’s still none the wiser as to what to suggest to Diego. He looked amazing in Elliott’s dad’s suit at the Mexican consulate back in Dallas, but he had complained about having to wear it all the way there.
When Diego, Klaus, and Five arrive back in their room after what seems like the most condensed bachelor party of all time, because they are certainly in appropriately high spirits, both in terms of mood and inebriation level after just an hour and a half of awful karaoke, they all stop in their tracks, staring at her in her outfit, Klaus delightedly clapping his hands, Diego slack jawed and wide eyed, and even Five raises an eyebrow that could be construed as appreciative.
Lila ignores Diego’s intense gaze for the moment, because her heart still feels a bit fluttery at the thought of the wooden beads around her wrist and the commitment that came with them, in favour of dealing with the first order of business. They have a wedding to get to in twenty minutes, after all.
“Klaus, I got you something you might like to wear later,” she explains, pointing to the velvet suit with its emerald shine that she laid out tidily across the back of the sofa. It feels weirdly important to her that he likes it.
“Oh Lila, darling, you are a lifesaver! All I found so far is this boring dragon-print shirt—Hey Diego, do you want my boring dragon-print shirt? Diego?”
But Diego isn’t listening to Klaus, and Lila is slowly tuning him out as well, distracted by the way Diego is slowly making his way over to her, coming to a stop just inches away and giving her a very heated once over.
“You look—”
He doesn’t finish his thought, instead his mouth snaps shut in the way Lila is learning he does when his words fail him because he’s too overwhelmed. Inexplicably, it makes goosebumps rise along her spine. But he’s being a bit silly, she’s worn shorter skirts around him.
Diego reaches out a tentative hand to tuck a strand of hair that must have come loose from her hair band behind her ear and Lila can’t help staring up at him, caught in the reverence he’s appraising her with.
Then Diego leans in and Lila just about remembers how long it took her to get her make-up right and the tight dress on and she knows exactly where this will lead if Diego gets his lips on her, so she slaps her outstretched fingers against his mouth when his face is only inches away from hers and watches his eyes fly open again, accompanied by a muffle mph.
“No time! Get changed and we all need to head down to the banquet hall,” she says and breezes past Diego, partly to get out of his reach but also because any second longer with the feeling of his lips against her fingers and she would have grabbed him by the wrist and dragged him to an unoccupied room herself.
-
It’s ridiculous how giddy she feels, standing at the top of the gathering, bouquet in hand, and by virtue of being the only bride’s maid, she guesses, also fulfilling the role of maid of honour.
This is the most normal thing Lila has ever done—the city block size dimension sucking fiery cluster of balck holes that is illuminating the hotel terrace notwithstanding.
Diego practically shoved his way to the front when they were all finding their seats, and Lila had to push him down into his chair, because he’d almost looked like he was just going to stand with his arm around her waist for the whole ceremony. He keeps looking over at her with such fondness that Lila is finding it hard to follow Klaus’s impromptu officiating. At one point she just barely stops herself from shooing Diego, the heat in her cheeks making her feel almost ridiculous.
-
They watch Sloane and Luther for a few minutes as they slowly glide across the dance floor for their first dance and Lila has never felt this safe. 
Tucked in under Diego’s arm she can smell his after-shave and feel the warmth of his skin through the thin material of his shirt. She’s glad he didn’t wear a suit, not least because it’s just not him.
She shakes her head a little to clear it of the mental image of her fingers hurriedly undoing the buttons on his shirt so she can slide her hands over the smooth skin of his chest and sides.
Diego gives her a funny little look then steps away from her and offers her his hand for a dance.
Lila puts her hand in his and is ready for him to twirl her around but in the last instance Diego pivots and twirls under her arm and Lila can’t help the broad grin that tugs at her lips.
He’s so ridiculous.
She loves him more than words can say.
They dance like that for a while, sometimes pressed together and sometimes showing off their best moves to each other. Then Diego leans in and asks her softly, “D’you want something to drink?”
“Mmh, yeah, some water would probably be good,” Lila says and before she can make a move Diego pecks her on the mouth and pulls away to head towards the buffet.
It was just a very short kiss, barely even really deserves the name and yet it flips a switch in Lila’s brain and she’s suddenly hyper aware of the fact that she’s not kissed him since before the bachelor party. 
That just won’t do.
Lila turns on her pointy heel and stalks off to follow Diego to the other end of the room.
She catches up to him just as he passes one of the pillars that are scattered around the hall, and she gets in front of him with an almost desperate skip, shoves him back against the pillar with her hands on his chest, leans up and presses her lips hard against his.
Diego makes a startled noise, but his hands land on her waist and his tongue snakes past her lips into her mouth. It makes her groan and her knees go a bit weak.
She drops back down onto her heels, breaking the connection between them to catch a breath, but Diego just follows her lips with his, his arms tightening around her waist and back, pulling her against him again. 
Lila thinks philosophically that breathing is overrated, especially if they are all going to combust together with the hotel in some 48 hours, so she leans against Diego who stoops down a bit, leaning against the pillar behind him, so that they are almost level and she doesn’t have to crane her neck.
For a second the way his knee is now pushed up between her legs makes Lila even more desperate to get as close to him as possible and she throws her arms around Diego’s neck and shoves his head back against the pillar with the force of her kiss and just holds him there. The thought of this undeniably big and fit, combat trained man relenting instantly to her makes Lila feel almost dizzy.
She breathes in loudly through her nose, suddenly overwhelmed, emotions making her feel even more breathless and she can’t stop herself from pushing herself harder against him, head to toe.
Diego’s hands are on her arse and he pulls her in even more and Lila is aware of the fact that her skirt must have ridden up her legs quite a bit by now but she couldn’t give a fuck as she tilts her head to get better access to lick along his bottom lips. She presses her fingers into the back of Diego’s neck and the noise he makes is very low but sounds suspiciously like a desperate whimper and—
“Ew, gross!”
They break away from their kiss but don’t move at all beyond that except to turn and glare at Five. At least Lila is glaring, she’s relatively certain Diego is doing at least the same, though he might be looking straight up murderous.
“Luther wants everyone to be around for the cake cutting. Why we’re doing that now, I don’t know, but if you two sex-ed-cautionary-tales could get your brains out of each other’s pants and come be civilized for two minutes, it would be much appreciated. I need to eat something before I start going into an early hangover.”
As quickly as he turned up, he’s gone, and Lila realises he probably blinked over. Serves him right if he ended up seeing more than he signed up for.
She gives Diego one last hard kiss and then steps back taking his hand. He looks a little disappointed that they didn’t take this further and it almost makes her laugh.
“Come on, I’m starving!” she says with a tug on his hands. “Don’t forget your brat is stealing all my food!”
The way Diego’s eyes go so glassy and fond again in only an instant makes Lila’s heart pound in her throat and she shoves down the thought that it wouldn’t make much of a difference either way. Neither of them is going to actually meet their child.
She swallows hard and turns away so Diego won’t see the unshed tears that suddenly threaten to spill over—god damn fucking hormones—and starts pulling him towards the rest of his family.
If nothing else, she can at least stuff her face and enjoy the company for the next day and a half.
22 notes · View notes