Thanks for joining us on the 1960s Columbia Preservation Bike Tour. This is a self-guided tour with directions between stops, allowing you to pause the video and ride at your own pace. Please keep in mind that you ride at your own risk, but bicycle safety tips are provided at the beginning of the video. Have a great ride! Hi, I'm Megan McNish, a preservation planner with the City of Columbia's Planning and Development Services. Thanks so much for joining us on our 1960s Columbia Bike Ride. We hope that it will be informational and enjoyable for you. To get us started, our Comprehensive Planner of Lead to Fourth is going to give us a little bit of information on bike safety and some tips to have you stay safe out there. Hey there, my name is Linda Fourth and I'm the Comprehensive Planner for the City of Columbia and I'm here today with Megan to take our preservation bike ride virtual. So, before we get out for a ride, there are a couple things that you want to think about when it comes to safety and just being prepared. So, first thing, and this important thing is checking your bike. Now, if you're riding a B-Like, we still might want to check some of these things to make sure the tires are filled with air, that sort of thing, but this is my bike, so I'm pretty comfortable with it, but the things I'm going to check, because I often put it in my car, are that my brakes are connected up here, that my tires have enough air in them, the gears look okay, nothing's wrong here. I have pedals on my bike, sometimes your road bikers might disconnect your pedals for other reasons and need to connect them back. The seat's at the right height, so the way you can tell, the seat's at the right height, this will go for your blue bike as well, is when you're sitting on your seat, your leg is almost straight, just a little bend in it when the pedal's done. So that should give you the right height on your bike, and notice I can still put my toe down to make sure it goes safe. So that's how you make sure your bike is ready up, and you can check your brakes also by doing this, making sure they're close. So we've checked our bike, but there are still some things we want to make sure we've got ready for a ride today. So, first and foremost, shoes. These are pretty gross looking, they're either my old running shoes, but the important thing is I've got them tied correctly, they're not going to fall off my feet, and they're close to the last thing you want to do. A slide your toes in between your ear or your headset, it's not a real comfortable feeling, it might end up with some issues there. So, got good shoes, I've got the right clothes, I've got some comfortable shorts, because it's warmer outside today than it was when we did our last bike ride. It's a really bright shirt. I mean, not everyone has shirts as bright in their closet, feel pretty lucky about that. So, if I don't have my bright shirt, or even if I do, I'm going to want this, because it's reflective. So, if I'm riding in lower light conditions or I don't have bright clothing, this helps drivers look out for me and make sure that I'm safe. So, I've got this, wonderful safety vest, and the next thing I want to make sure I have is my helmet, because let's be honest, helmets, we all know helmets are important. It's like wearing seatbelts, right? So, put your helmet on, buckle it, just because you see us while filming, not buckling your helmet does not mean we're not riding with a buckle. It's sunny, so I've got sunglasses, and I've got a water bottle. But anything in your water bottle, if you want, Gade Raid or something like that, but I've got water in mind today, and we had our snacks earlier, but packing some snacks is never a bad idea either. So, now you should be ready to go and enjoy your ride. Alright, so the next thing we want to talk about are the rules of the ride. So, here in Columbia, there are a couple things you need to be aware of specific to being in Columbia and then also being in the state of South Carolina. That might be different from where you're used to riding or the last time you looked at your driver's ed book or took a bicycle education class. So, first and foremost in the city, we don't ride our bikes on the sidewalks in a very specific area. That area is between Assembly and Sumter and Gervais and Elwood. So, we have that core of the center city to make sure that we've got enough space on the sidewalks for all of our more vulnerable users, and we have just higher pedestrian traffic. So, it makes it a more safe situation for everyone. And of course, we do have Sharrows on Main Street in a good portion of that area. So, that provides you with a lower speed, safer option within the streetscape as well. So, if you're in those areas, please make sure to either walk your bike on the sidewalk if you're uncomfortable riding in the road or ride your bike in the roadway. And follow all traffic laws as a result. The thing that you need to know specific to state of South Carolina laws is tied to bike lanes. So, depending on when you do this ride, you may encounter a number of bike lanes. Because we've got some bike lanes in the works as well. But the bike lane that I know you'll encounter is on LinkedIn Street, kind of down near the inner Vista down by the Arnold School of Public Health and that sort of thing. So, when you're on a street and you're riding in the street, if there is a bike lane in the state of South Carolina you need to be in that bike lane. Or, if it's legal, you can be on the sidewalk. So, again, if you're not in that two-block wide area between Assembly and Sumter, Gervais and Elmwood, you can ride on the sidewalk if you're more comfortable on the sidewalk. But, please, if you're in the road and there's a bike lane available, please be sure to use that bike lane. The other thing is, and this is not specific to South Carolina, but when you're in the road, you want to think about where vehicles are. So, if you're turning, you want to look out for, but also if there's parking on the side of the road, you want to make sure that you're not riding so close to the cars that there's a potential to be a door. So, that means the driver or the passenger is opening their door into the traffic and may actually open their door into you as you walk by. And that can result in some pretty bad injuries depending on what speed you're going. So, we want to make sure that you're staying outside of what we call the right where that door would open. The other thing that we want to think about when we ride is making sure that we're signaling our movements, right? So, when we signal our movements, there are a couple ways you can do that. You can point, so when you're turning right, you want to point to your right, which on the video is not going to look like that, but it's my right, point to your left. You can also use your hand at a 90-degree angle to signal turns to your left or right. And you can also you want to make sure that when you do that, you're holding your hands out. So, you're not just doing this, right? You want to hold, make sure the drivers can see you. You can pull your hand back down and hold on your handlebars, but right before you turn you want to point again. And then the other thing is on this route, we're going to run into a lot of stop signs and also some stop lights. So, when you do, and you're approaching an area where you're going to stop, just signal to other riders and to drivers that you're going to stop. You can take either hand and put it down at a 90-degree angle, and that will just indicate that you're slowing and coming to a stop. So, again, you want to do that for two to three seconds with plenty of advanced notice of what you're going to do that. You don't want to stop right. It's kind of like how we wish everyone used their turn signals with cars. So, anyway, those are kind of your helpful tips for being safe. And just make sure that what you're doing today on this ride, you're comfortable with. If you're not comfortable, we want to encourage you to walk your bike or ride your bike on the sidewalk if it's allowed in that area. And just make sure that you're proceeding in a manner in which you feel safe. Between each stop, a map of the route to the next stop will appear. Followed by written directions. You can pause the video at either point to help you navigate to the next location. Thanks again for joining us on the 1960s Columbia Virtual Bike Tour. You might be wondering why we selected the 1960s as the area of focus for this virtual tour. But it was one of the most tumultuous and divisive decades in American history. Marked by the Civil Rights Movement, the Vietnam War and anti-war protests, and political assassinations. Culturally, there was also a great deal of tension between frustrations with the status quo that led activists to use increasingly militant tactics. But conversely, the hippie counter culture where many young people dropped out of the political and social mainstreams. On the national level, several events lay the groundwork for changes that we'll be talking about at this stop and at those to come. First was the 1961 inauguration of John F. Kennedy and his assassination in 1963. After which, he was succeeded by Lyndon B. Johnson who was re-elected in 1964. As the 36th president, Johnson spearheaded reform programs he dubbed the Great Society. The idea was to give poor people, quote, a hand up, not a hand out. These programs included the War on Poverty, which included urban renewal, a topic we'll discuss at our next stop. As well as support for arts and humanities through the National Endowment for the Humanities and the National Endowment for the Arts. As well as environmental initiatives, including the Water Act in 1965 and the Motor Vehicle Air Pollution Control Act that set the first vehicle emission standards. While there are a number of issues in the 1960s that we could discuss, in the City of Columbia, it was the struggle for civil rights that defined the 1960s. While our discussion of civil rights will be focused on the 1960s, it's important to acknowledge that the fight for equal rights started well before that decade. Between the founding of the NAACP in the early 20th century, committees and organizations dedicated to pursuing voting rights and fights for equal pay and integration of schools. There were several events in the decades leading up to the 1960s that played an integral role in the civil rights movement here in South Carolina, as well as across the nation. One of these events was a 1947 voting rights case called Elmore v. Rice, which challenged the white-only primary system in South Carolina. A second event occurred in the following decade. In June of 1954, Sarah May Fleming, a young African-American domestic worker, was ejected from the bus near where we're standing at the corner of Maine and Washington streets. The litigation involved in Fleming's case helped lay the groundwork for Rosa Parks actions in 1955 and the ensuing Montgomery bus boycott. The first civil rights action of the 1960s in Columbia began with a sit-in at a lunch counter. This was inspired by a similar nonviolent protest in Greensboro, North Carolina where four college students had refused to leave a white-only lunch counter at a Woolworth's without being served. Here in Columbia, students from University and Benedict College began their own sit-ins at Woolworth's, Crest's, and Eford's. While all of the sit-ins here in Columbia were nonviolent protests, they still led to many arrests for criminal trespassing and legal cases for the students involved. However, by 1962, Columbia began to desegregate its lunch counters showing an early success for the students and their nonviolent protesting. This early success was juxtaposed by a vote from the state legislators to raise the Confederate battle flag atop the state house in opposition to integration. While these early actions and successes were heartening for those involved with the civil rights movement, 1963 was a watershed year here in Columbia and across the nation. In 1963, the University of South Carolina began to consider desegregation. This spurred a protest by white students in May of 1963. Over 1,000 University of South Carolina students marched to the state house chanting, quote, we don't want to integrate. However, by July of 1963, the University of South Carolina's Board of Trustees announced that it would comply with orders to desegregate the University. On September 11, 1963, the first three African American students, Henry Monty, James Solomon and Robert Anderson enrolled at the University of South Carolina, becoming the first African American students since reconstruction. The desegregation of public schools, both high school and elementary, began in 1964, but wasn't complete until the early 1970s. Also in 1963, the South Carolina State Park System was ordered to desegregate. Instead of honoring the order to desegregate, the South Carolina Forestry Commission closed all of the state's parks and didn't fully integrate facilities until 1966. However, 1963 brought more local successes. On August 12, 1963, leading Columbia merchants announced that they had removed all segregation signs from water fountains, restrooms and dressing rooms, and agreed to adopt non-racial employment policies. This announcement came immediately before the August 28th, March on Washington. The March on Washington included approximately 250,000 people, gathering in solidarity for jobs and freedom. It was at this event that the Reverend Dr. Martin Luther King Jr. gave his famous I Have a Dream speech. Sadly, less than a month later, on September 15, 1963, a bomb exploded at the 16th Street Baptist Church in Birmingham, Alabama, killing four young girls and injuring several other people prior to Sunday service. The events of 1963 paved the way for further legislation on civil rights. In 1964, President Lyndon B. Johnson pushed a civil rights act through Congress, preventing employment discrimination due to race, color, sex, religion, or national origin. The following year, in 1965, the Voting Rights Act was adopted, eliminating poll taxes, literacy requirements, and other tools that Southern whites had traditionally used to keep blacks from voting. In April of 1968, President Johnson signed a Second Civil Rights Act into effect, also known as the Fair Housing Act, providing equal housing opportunity regardless of race, religion, or national origin, and was intended to follow up on the Civil Rights Act of 1964. The Civil Rights Act of 1968 was, however, contentiously debated in the Senate, but was quickly passed by the House of Representatives in the days after the assassination of civil rights leader Martin Luther King Jr. The Fair Housing Act stands as the final great legislative achievement of the Civil Rights Era. At our next stop, we'll discuss other mid-century policies that had a devastating effect on African-American communities, both locally and nationally, and also had a lasting effect on the built environment of Colombia that has shaped the way our city looks today. We talked about at our last stop the 1960s were a time of great upheaval in the United States both on a political level and culturally. Some policies that arose during the 1960s had a significant impact on the built environment, and particularly the Civil Rights Act of 1954 and Black communities. One of these national policies was the 1956 Highway Act, which displaced communities to make way for the construction of urban highways. This act reflected not only the car-centric ideology of the mid-century, created by increased access to motor vehicles, but also the realization of Cold War ideology and large-scale weapons not suitable for airplane travel across the country. But perhaps the most influential of these programs were the Housing Act, beginning with the 1949 Housing Act and the concept of urban redevelopment. This term was later changed under the 1954 Housing Act to the more familiar urban renewal. Under the Housing Act, the federal government gave cities the power and money to condemn slum neighborhoods, deliver them through eminent domain, and then turn them over to private land developers at cheap rates for projects that included higher-end housing, hospitals, hotels, shopping centers, and college expansions. These acts were intended to wipe clean, poor, deteriorating neighborhoods, stimulating private investment and luring middle-class residents back to cities. The federal policy was intended to compensate displaced people, find their relocation, or place them in public housing. However, this assistance was often late or never materialized. As cities used federal money to raise entire areas, people lost their homes. But more importantly, they lost their communities. Because urban renewal was fundamentally targeted at clearing slums, poor people and people of color were often disproportionately impacted. While the Act did not mandate that public housing be associated with a renewal project, it stipulated that renewal sites must be predominantly residential, either before or following redevelopment. However, 1959 amendments to the Housing Act changed some things. Universities were authorized to receive renewal funds without having to include housing. Starting in the 1950s, Columbia sought to eliminate traffic light from the city through a county-wide fight-light campaign. This was intended to unify downtown and through this PR campaign, it essentially equated light and slums to cancer. With the 1959 amendments to the Housing Act, the University of South Carolina began to expand into the residential areas of University Hill and Port One. In 1965, during the height of urban renewal, Fort Walker House was demolished. It had fallen into less than pristine condition and was locked in with other homes on that block that were seen as blighted. Lyle Spassette, Carlisle and Wolf, or LBCW, built the Rutledge Office Building and the American Institute of Architects later presented the project with an award of excellence in the year that it opened. Port One, where we're standing now, was a local voting district designated as a blighted area by the Columbia Housing Authority. It was a historic community of African American businesses, schools, churches, banks and homes. This tight-knit community lived in what was seen by city government to be blighted conditions and they bordered on storm-like areas. As a result, the University of South Carolina acquired 22 acres of land along Blossom Street a survey conducted by the City of Columbia. There were 222 dwellings located in this area. Of those 222 dwellings, 213 failed to meet the city's minimum housing requirements. Between 1964 and 1974, the Columbia Housing Authority and the University of South Carolina displaced the Portland community in order to expand state government and university where homes, schools, churches and businesses once stood. Now we have the Strom Thurmond Wellness and Fitness Center, the Koger Center, the Carolina Coliseum and several other University of South Carolina buildings. The Ward One community continues to live on in stories shared by former residents and ongoing efforts of people who remember a time when they called the Ward One home. Although most of the structures that people identified with 50 years ago are memories of the Ward One community live on as former residents tell their stories and reconstruct the narrative of Columbia's history. It is our responsibility to listen and share these stories to document the true, full historical context in which we live. Founded in 1991, the Ward One organization maintains the spiritual sense of community shared among former Ward One residents. The goal of the organization are to renew acquaintances, of their history and memorialize the legacies of descendants and their contributions. The Ward One project is a collaboration between University of South Carolina faculty and students and former Ward One residents to preserve the memories of the Ward One community and a mobile application. Oral histories from former Ward One residences and accumulated extensive collections of primary materials of burning Ward One and its history are available on this application. Since 2012, the Crackle Interactive class has combined students from Computer Science and the Humanities to document and share the stories of Ward One. The class will continue to develop software that generates an interactive experience for visitors, parents, students, and the Columbia community at large. Once finished, the Ward One mobile application will be available for download in the App Store. And right now, we're standing in front of the last remaining residents in Ward One. It's not a whole lot to look at, but it's the last remnant of this once thriving community. The other building that's associated with Ward One is the Palmetto Compress, which is just across the street. These are the last remaining messages of, again, a once thriving community. As we discussed at our previous stop, there were a number of federal applications with local applications that devastated communities in Columbia, influenced by national trends, planning efforts contributed to, or in some cases were the mechanism for, this devastation. During the middle of the 20th century, urban planning was characterized by a top-down approach that idolized efficiency and engineering, often prioritizing automotive travel over other modes. Concurrently, an increase in funding became available for urban highways in the post-war era, with the goal to provide access to growing suburbs. Planners and engineers worked to implement sweeping changes in order to wipe the slate clean and remake cities using mid-century ideals. Using this framework, pedestrians and vehicles would be separated with no space for bikes, and commercial and residential uses would remain in separate spheres as well. This top-down approach of planning largely excluded the public, especially working-class communities and communities of color. This planning model was challenged in 1961 by Jane Jacobs with the publication of The Death and Life of Great American Cities. As a journalist, Jacobs spent much of her time on the streets of New York City and she studied the interaction of people on the street, examining what gave the city life. In her work, she argued the planning efforts at this time did not respect the needs of citizens and, instead, oversimplified and gutted communities. Jacobs believed there were four keys in the city. Lively streets, interconnected streets, mixed-use development, including parks and public buildings, and neighborhood identity. The construction of urban highways destroyed the interconnection of street networks and, in turn, isolated communities, reducing their vitality. Likewise, the separation of land uses limited street and public space to certain times of the day. So if everyone works in one area and lives in another, after 5 o'clock, the business district would be empty and goods and services would be disconnected from neighborhoods. Columbia's own mid-century planning efforts resulted in the 1969 Central City Columbia SC Master Plan, often referred to as the Doxiatus Plan. Produced by Doxiatus & Associates, Wilbur Smith & Associates, and Lyle's Basette, Carl Lyle & Wolfe. The plan promoted a freeway system that would follow the boundaries of the original city grid with larger arterial streets throughout, elevated and underground people movers, a clean slate on Main Street with a raised walkway, separate residential and commercial sectors, and development of the riverfront. All of these recommendations were developed without the input of the many communities the recommendations would affect. As much of the Doxiatus Plan wasn't realized, hundreds of historic buildings, including many on Main Street and in the Vista, were saved from demolition. While preservationists and urban planners today have ideas put forward in the plan, we can't ignore the Doxiatus Plan as a relic of a bygone era in planning. It is both a cautionary lesson to carefully consider the historic value of a building before it is lost, and a reminder that public input is a critical component in the planning process. The Doxiatus Plan, however, also saw the opportunity in the open space on the riverfront. In feedback received during the Columbia Compass planning process, it was clear many citizens continued to see the riverfront as Columbia's greatest underutilized asset. Although the rendering in the Doxiatus Plan might not be what these commenters had in mind. With its focus on efficiency of movement, the Doxiatus Plan also recommended strengthening public transit networks. Another goal we continue to work towards today, looking at the Doxiatus Plan with a critical eye and understanding its lessons and its flaws can help us consider our city in a new light. As we head to our next stop, where we'll talk about a movement that changed the course of our city, consider how the needs of Columbia citizens might be similar or different from what they were in the 1960s. Urban renewal devastated large swaths of Columbia, but as it reached its peak in the 1960s, Columbia's nascent historic preservation movement was born. Here behind us is a Columbia cottage that was one of the first properties on the list of protected properties in Columbia, the historic and cultural buildings plan, compiled in the early 1960s as widespread demolition both through urban renewal and private efforts underscored the need for preservation here in Columbia. Mabel Payne, a housing inspector with the City of Columbia's Urban Rehabilitation Department, was instrumental in developing a list of significant structures and advocating for their preservation. Though not an architectural historian by training, Mabel Payne became Columbia's historic preservation pioneer. The desire for preservation came from Payne's firsthand knowledge of the devastation of urban renewal. She saw some of the city's oldest and most dilapidated buildings be targeted but could also see their rich architectural heritage. She began to identify and record structures before their demolition and she started this work in the late 1950s. Among the buildings Payne identified was this Columbia cottage, which she first photographed in 1959. Although it was identified for its architectural significance, the structure was also among a small number of landmarks that were not only significant for their architecture but also their association with African American history. Originally addressed as 718 Lumber Street, it was home to driver William Pinkie. His family members lived on the adjacent blocks of Landing Street in the Arsenal Hill neighborhood. Arsenal Hill was historically home to both white and black residents but these residents were not only divided by race but also by geography. African Americans lived in the western half of the neighborhood while whites lived to the east. By the 1920s and 30s the divide was visible but the white half of the neighborhood featuring paved roads and sidewalks. This division deepened during the Jim Crow era as white inhabitants began to associate areas with concentrated African American populations with life. A former resident of Arsenal Hill James Carter remembered the neighborhood he grew up in not as a blighted area but something else entirely. Carter recalled Arsenal Hill was a microcosm of America in that there were people there who made a way to live very comfortable and have their own society their own middle class and provide for their families who lived very comfortably. But like Ward 1 this part of Arsenal Hill quickly became a target for urban renewal in the 1950s. Urban renewal however was not the only threat that older neighborhoods faced in the 1950s and 60s. There was a desire for development in the downtown area of Columbia. The structures that once stood around this one were demolished to make way for office buildings leaving it as a driver on this block of new street. Although it was originally protected for its architecture historians and preservationists alike have begun to recognize the importance of protecting structures that can tell us more about the experiences of individuals throughout history. Although we don't have lengthening's diary or a whole lot of information about the man himself a great deal can be learned from the home that he lived in and the neighborhood that once stood in our midst. At our next stop we're going to talk a little bit more about where the preservation movement began in Columbia and how the inclusion of this Columbia cottage for its architecture was a huge step forward from preservation. At our last stop we talked about the impact that urban renewal had on large areas of Columbia. And although the Robert Mills House is now a treasured building here in our city it was not immune to the growing pains of the 1960s. From the completion of the home in the 1820s to the late 1950s buildings on this site served as a religious education institution versus a dormitory Birchacora College and then eventually for the Columbia Bible College. By the 1960s the Columbia Bible College today Columbia International University had outgrown the campus surrounding the structure. After Columbia Bible College vacated the property the building sat vacant and was soon slated for demolition. Outspoken citizens of Columbia came together in October of 1961 to form the historic Columbia Foundation whose first goal was to save the Robert Mills House. It's important to understand that in the early 1960s there was very little national legislation to support the preservation movement. Preservation was largely considered a private effort with the federal government only getting involved in very small number of instances. The Antiquities Act of 1906 allowed the president to create national monuments which after 1916 were administered by the National Park Service. Later the Historic Sites Act of 1935 created the historic American building survey known as HABS which at the time of its creation provided jobs for architects, engineers and surveyors who were out of work during the Great Depression. This was one of the many efforts by the Roosevelt's administration to assist with economic recovery in the wake of the stock market crash. In the meantime, this historic structure was still threatened by demolition. Legend has it that Mabel Payne, a member of the city's Urban Development Office, we discussed at our last stop, sat on the front porch of the house in 1961 with a shotgun to prevent its demolition. While the story might not be true, Mabel Payne was among the guiding members of Historic Columbia and other preservation groups in their early days. She served on the first preservation planning committee as their chair and eventually Historic Columbia was able to raise the funds to purchase and restore the property. After extensive renovations the home opened as a museum in April of 1967. Today Historic Columbia continues to care for this property among others and the Robert Mills House is just one of five national historic landmarks in Columbia. While homes like this were among the first to garner the attention of the preservation movement over time historians and preservationists have begun to recognize the value of the homes of common people and the value that they give to preservation in our city. At our next stop we're going to talk about how the protection of historic buildings in Columbia has evolved since the 1960s. At our last stop we talked about the preservation of the Robert Mills House. This was primarily a private effort organized by the local citizens of Columbia but with the threat to other historic buildings throughout the city it became clear that municipal efforts would be necessary to preserve Columbia's architectural and cultural heritage. This realization resulted in the formation of the Historical and Cultural Buildings Commission. The commission was created on February 20, 1963 by city council resolution. Its purpose was to identify and protect buildings with historical significance and to identify those that may develop significance in the future. It was also tasked with reviewing applications for major exterior work and demolition as well as controlling the use of historically significant properties. The commission quickly developed the first landmark list known as the Historical and Cultural Buildings Plan which was published by the commission. This list identified many architecturally significant properties throughout Columbia. The commission reviewed requests for major changes and demolition of these properties. In 1974 Columbia worked with Carlisle and Wolfe as a private firm hired out to update their zoning ordinance. With the coming updates to the ordinance which were to include urban design review LBC and W recommended that the Historical and Cultural Buildings Commission be replaced with a new body that would have broader regulatory power over preservation and urban design matters. By the end of 1974 the Historical and Cultural Buildings Commission was disbanded to make way for the new Landmarks Commission. The Landmarks Commission held its first meeting shortly after the disbanding of the Historical and Cultural Buildings Commission with its new powers to review any construction reconstruction alteration repair demolition of any structure erection or replacement of any sign, marquee, awning or other exterior architectural feature or attachment to any landmark or structure within a designated district. With these new powers the Landmarks Commission published its first landmark list in 1975 and the deficiencies of the purview of the previous Historical and Cultural Buildings Commission became apparent. In the 11 years the commission reviewed protected buildings more than 40 of those identified on the list were demolished or removed and later demolished at the owner's request. Half of the parcels where these demolished buildings once sat are either vacant parking garages or parking lots. One of the demolished structures was the William Glaze House a Group 1 landmark which was an excellent example of the Italianate style. While the Italianate style is common in the Midwest there are not many good examples in the Southeast and the Glaze House was one such example. The site of the house is now a parking lot and these stories are repeated over and over for structures on the original landmark list. Not to mention the significant number of structures lost before protections went into place. In 1999 when City Council adopted guidelines for the City Center Design Development District a new commission was created to review historic preservation and urban design projects known as the Design Development Review Commission. The creation of the DDRC based out the existing Landmarks Commission and the DDRC continues to hear these cases today although the number of districts has vastly increased since its creation. Since the 1960s the Historical and Cultural Buildings Commission, Landmarks Commission and Design Development Review Commission have all ensured the protection of hundreds of historic resources changing the face of our city. Without these commissions the staff that supported them and most importantly the volunteers that sat on them it's hard to imagine what our city would look like today but it's important to remember that preservation is an ongoing process one we continue to revisit and revise. Some of those buildings that replaced those demolished on the original landmark list in the 1950s of age those mid-century modern structures that destroyed earlier ones have begun to become historically significant in their own right. As we move forward we need to keep a critical eye on the historic fabric of our city as buildings come up for demolition will we one day lament their loss? Will a building type commonly found today be scarce in the next few years? These are questions we need to continue to ask as preservationists but also as informed citizens of Columbia. Thanks so much for coming along with us in our 1960s Columbia bike ride we hope you enjoyed it and it provided you with a little bit of information a new way to look at your city if you have ideas for other bike rides or things you'd like to hear more about maybe you'd like us to dive into history in Columbia or women's history in Columbia let us know in the comments or she does an email at preservation at colombiasc.gov we'd love to hear from you and thanks again stay safe out there. We hope you had a great time today and if you're taking this ride in May we hope you're celebrating National Bike Month and National Historic Preservation Month in other ways as well a great way to stay tuned and learn about future projects and efforts from the city's planning division is by signing up for our e-newsletters at colombiasc.gov.


Hi, I'm Lucy Reid, Ag Tech Extension Officer at South Australian Department of Primary Industries and Regions. We're here at a property in Port Arthur in the Northern York Peninsula, and we're here to see the Rubicon 9000 sprayer for hardy with the GeoSelect technology. Currently we're here with Andrew Snowball and Heath Thompson from hardy. So for all the farmers and that out there that love things like horsepower, how many horses are we talking under that hood? So the Rubicon has got 375 horsepower, we've got a road speed of up to 50km an hour. It's a self-propelled unit, so combined all in one tank boom the whole lot. There are options on boom sizes from 36 metres to 54 metres, which I believe is the largest, with different nozzle technologies that go onto that. So this is assembled in Adelaide, South Australia, and the GeoSelect part is obviously designed and made also in Adelaide, South Australia, but for Australian conditions. So the only additional parts over and above a normal sprayer are the four GPS units. So you've got two in the centre and then one on either boom. That measures the angle of the boom, as opposed to just assuming it's a rigid structure. And then this one here has got 49 individual sections of a metre wide, that it's got airlines and a 12 volt electric system, and the associated wiring and stuff for that. But that is the only additional parts, there's no extra can systems, no extra cameras, no extra power systems. I guess one of the things we wanted to do again is not put so much hardware on the boom. So it's easier for maintenance and fixing and... Yeah, I guess it comes back to that design where we want the farmer to be able to fix the machine if there is a problem, fix the machine themselves or have the best chance to do that. Hopefully with your boxer tools and stuff like that you can make a few adjustments and get going again. Each section of a metre wide is actuated pneumatically or by air, which is done through a solenoid, which is a 12 volt solenoid. And can I just ask why the four GPS receivers? Is it for a good number or do you need more or less? So there's two in the middle centre section to get a very accurate heading and then two either side to know where the boom wings are. So you actually see in the user interface as we swing around, which we will, that you actually see the boom swing around. The boom is not actually one rigid part, it actually flexes. And in bigger booms it flexes even more, so if I was to push that back there, actually at the end there it's a couple metres. So that can actually be the difference between hitting and missing a selective spraying operation.  This knows where it has and hasn't sprayed, so if you are turning and one of the booms moves backwards over that area, it won't spray that area. So Andrew, just talk us through GeoSelect. What's the process from start to finish with this? In summer, the first thing that the farmer would do is get a drone operator to come out and fly the paddock. So that would capture an image of the paddock. That's all then processed and put into a dinomap, which is basically a weed map of your paddock. So everything is there prior to actually moving the sprayer into the paddock.  Once that you've got that data, it's either transferred by the cloud or a USB stick or something similar into the sprayer and then it's as easy as just rolling up, turning it on and driving around. Andrew is about to start the Rubicon up. OK, so I'll start the machine, fold it up and then give you a yell and then I'll unfold it. The sense that we have can pick weeds up down to about five cent piece. And what we realised that when we started using this high resolution data that having a single GPS antenna on the roof of a sprayer was not sufficient, accuracy wise. To work with the high resolution data that we had, so you'll see on the boom as it passes through that you've got four GPS antennas on the boom. And what that's doing is measuring where the nozzles are down to a centimetre and allowing the scan data to be most effective in the sprayer. It's particularly useful to have selective spraying on large booms because of the amount of air you can cover. You save on fuel costs and amount of hours on the paddock over a 36 for example. And you're able to get a lot more done in a lot shorter period of time. So the moment we're going to spray this paddock with 100 litres of hectare and the geo-select will work out where that 100 litres hectare has got to go and where it doesn't have to go. So there's various views on the Rubicon, but we'll get going there. So we get rolling. OK, so just turn a bit spraying to get our boom height going. As you can see the boom switch on and off as well as the boom yaw. So you'll see the booms move on the screen as well as out in the paddock. So at the moment we're doing only 10km an hour, but we'll speed it up from there. So we're using Norak auto height on the boom. It's important with a large boom like that to have some auto-leveling capability. The Norak system uses ultrasonic and we've used it and to work quite closely with Topcon to implement the system on our large booms. The nozzles are going off using the drone data. I don't know if you can see in the camera, but we've got LED lights to turn on when the nozzles activate and we do that. In the evening when the light starts to come down a bit, it makes it a lot easier to see what's spraying and what's not. On this particular Rubicon we're running two nozzles per section at a 500mm spacing. So you've got one metre per section going off at any one time. Because the nozzles are not even fan, the software is configured in such a way that you're never half spraying a weed. It's allowing for the uneven nature of a traditional nozzle. On this system we're running two separate spray algorithms. You've got a H-Select system which is able to blanket spray at a varying rate and you've got a selective spray system which is a single nozzle out of the four nozzle system. The system knows where it is by the GPS units on the boom. So when you feed a map into it, it is basically as you move around the paddock, it knows there's a weed coming up, say 500 metres down there, there's one single weed. It knows that there is a weed coming up and whatever part of the boom passes over that weed, it will command the unit to spray that particular section at that point. Whether you're turning, whether you're reversing, whether you're going 25kmh or 3kmh, it doesn't matter. When you pass over that weed, it knows it's there and it will turn on the appropriate section. The other thing it lets you do is in heavier areas, it can recommend that there's a heavy area coming up for weeds to slow down and you'll save money. As opposed to you can have a real light section or even nothing for a long time and it can just say, do 35 until you get to the next area because you're not actually going to spray. Would you say that this was a good system for time efficiency? So it's a little bit of a change in the workflow. I guess it's not just jumping the sprayer and out to go. But I guess most of the times that we've talked to people that in summer spraying day, farmers know they're going to be spraying well before they actually are going to be spraying. In that time that you would have the drone operator come out and scan and then if you're scanning today, say the paddock today, scanning today, then it'd be spraying tomorrow. So with being able to image exactly where your weeds are, so you are spot spraying, what would you say the cost efficiency would be or savings? So if you've got all the weeds pushed it up into the corner, it'd only be one or two percent of the area that you actually need to spray. Obviously you're going to spray more than that one or two percent because you're going to have overlaps here and there. I mean what we say is up to 90 but depends on what your paddocks like and how many actual weeds you have in there and also how fast you run. The faster you run over that map, the more you'll spray. The nozzles can only turn on and off in a certain amount of time. So if there isn't enough time for the nozzle to turn off before the next weed comes up, it will just stay on. So you're definitely getting more paddocks per tank than what you normally would. Less time having to go back to the farm, fill up, you know, put more chemical in and stuff. Plus strategic decision making is that you actually know what's out there before you get there. So you can plan logistically for chemical deliveries or whatever else is going on rather than, you know, at the moment I'm just buying how many hectares I've got. At the moment it's only fallow weeds that we're picking up but into the future potentially if you can detect it with, you know, a drone or a sensor or something like that then if you can detect fungal and you can map it, you'll be able to do it. I guess that leads on to the old green-on-green question, you know, same deal. When sensors and that are able to pick up reliably a green-on-green so you've got, I don't know, ryegrass in a wheat paddock or something else in lentils and, you know, turnips or whatever you've got, if that's able to be mapped then this is able to be done. So there's no change in hardware on the machine for doing other applications as long as it can be detected by the imagery done at the start. For this rig, who would your ideal customer or target market be?  Thank you, Hardie, for inviting us out to see the Rubicon 9000. Thank you to Paul Jarrett for letting us see your property and utilise it for today. If you'd like to find out more about ag-based technology in South Australia please head to the Department of Primary Industries and Regions website.


Welcome back everyone who came back. Who's excited for Ansible Lightning Talks? All right, so you guys have like 10 12 ish Minutes and you know if these are it's going over the other two get to beat him up So this could this could be amazing except he needs to go and make sure that like Yes, someone's gonna wave at you and and then and then you can go over to Back to the things that you need to be doing in other parts of Summit Mr. Doug Hellman everybody take it away Thank You Robin So I'm gonna talk about a project that's very very new just imported into the open stack infrastructure in the past week It is partial, but I hope to get some people excited to help me finish it So downpour is a new tool for taking workloads from one open stack cloud and putting them into another open stack cloud So it's probably not something that people who are already building cloud native applications are gonna be really excited about using But if you have some legacy apps or some pets or whatever we're calling them these days It may be something that would be useful for you. I Started building this because we were talking about several different use cases within Red Hat We have people who need to move between public and private clouds between two different cloud providers and also between Private clouds during some sort of an upgrade process, right? We talked about what was involved in moving a workload and the requirements that we came up with were obviously you need to move all of The data because otherwise you're not actually doing the move so we have to download it from one place and upload it to another place and In the process of doing that we want to keep all the relationships between the data So if you've got instances with volumes and things like that you want to keep all of that stuff attached We also wanted to support multiple open stack versions. I mentioned upgrades as a case So we wanted to be careful about which parts of the API we were using and how we were using them And then we wanted to allow for public to private moves So we had to deal with Differences in the API's in different clouds in terms of what was active what was supported and that sort of thing There are a bunch of different ranges of Sort of ease of use or things that would cause some of these moves to be easier or harder So depending on the level of permission you have in the cloud if you're operating the cloud you have database access And you can do basically whatever you want to to that data If you are an admin user you might have more rights than a regular user And then the hardest case there is just if you're just a random tenant you just have a public cloud account You want to get your stuff out of it If you have two clouds with a shared storage back in that makes some things easier You can move volumes between the two clouds without actually having to export all of the data for example If you have two clouds that can talk to each other over some sort of fast interconnect Maybe they're in the same data center or maybe they're Maybe you have a temporary connection set up between them. That's that's really fast And then there's the hard case which is Basically no interconnect between them You might have to go offline in order to move the data between one and the other that sort of thing and then the other Criteria that I looked at was how the application itself is configured. How complicated that is so If you're doing really good clean deployments where you have a separate application or a separate tenant for each application Then it becomes really easy to isolate the data that you need to move in one go in order to get the whole application If you have one tenant, but you're using some naming conventions or some other sorts of things to Sort of isolate applications from each other then that that's not quite as easy But it's still fairly easy and then if you're like me and you just sort of randomly create a bunch of virtual machines And they do things that makes it harder because you have to figure out which virtual machines You need to move and what networks they use and things like that So I decided to start by looking at the hardest possible case because That meets some of the use cases and it sort of exposes some of the challenges that we were going to see So I said let's assume that you only have tenant permission. You don't have admin and you have no access to the database Nothing between the two clouds is shared including you might have to move data physically on a hard drive of like From one place to another because there's no network access between them And then you know my tenant is the tenant so it's full of all kinds of random virtual machines So I need to be careful about selecting them And I said what are the the trade-offs that I have to make by making that hard case my first case that I'm going to try and solve So obviously it's not a live migration tool because you don't have any interconnect You're not going to be preventing disruption like there's going to be some kind of a hard switch over between the two instances at some point You have to export all of that data So you have to have a place to store all of the volumes and all of the databases and all of that kind of stuff that you're going to export and then Something that's not immediately obvious But that becomes apparent when you try to manage the relationships between these things as the UIDs between the two clouds are not going to be Compatible, like you can't necessarily set the UID of a new thing that you create in your second cloud as As I started approaching trying to solve the problem I came up with a multi-phase approach So there are four different phases to deal with that rats nest of different instances and networks and things I said well, we need some kind of a way to select which ones were going to export. That's kind of obvious Then you have to do the actual export and then you have to do the import those those are pretty obvious And then the cleanup of the old thing so you after you do the move You want to delete the data so that you don't have duplicates or confusion or somebody reboots an instance and suddenly you've got mismatched data in a database somewhere Between each of those steps because no migration is ever fully automated No never fully clean especially when you're dealing with different clouds with different characteristics and different support features and things like that I wanted the opportunity to stop and Modify whatever had happened at the previous step before moving on to the next step So there's a lot of text files involved in the process in the tool outputs a bunch of these files So you can stop and generate Modify the the file and then move on to the next step and it'll do exactly what you want to do at that stage So the first step for figuring out what you want to export is the the query command It does things like find all of the servers that have certain name characteristics or that are a certain flavor or that It could potentially do things like give me all of the instances attached to a particular network or something like that And then it builds a YAML file with the instructions that are going to be used in the next step for doing the export so in this example It's just found one instance because I had a little demo environment set up with just one instance But you can see that it could also add images you could query for images with certain name characteristics or things like that And then SSH key pairs and then also volumes that are not attached currently to an instance Then the export step you basically run the export command against that file and it goes through and processes them So it's going to capture all of the SSH keys. It's going to download all of the volumes It's going to snapshot the instance and download the image that it creates from that process Store all of that information in the directory that you specify and then it's going to write a playbook To recreate all of those resources in your new cloud and it'll reference the files that it's creating when it does all of the downloads So then the the import command Is just to run the playbook So there's a whole bunch of stuff that I didn't have to write by virtue of using ansible as part of the process here So I have it creating at this point Public keys volumes network subnets All of that kind of stuff everything that ansible is supporting at this point it also creates as part of the process a CSV file that maps the old you you IDs to the new you you IDs so that you have a data file that you can then import into a Tool or run scripts against or whatever to see if you had a network with a particular you you ID and you were Referencing it by that ID somewhere in your old cloud then you can update that reference in your new cloud And then this is just an example of the the output where it's creating a the private network that was associated with the instance So it automatically detects those resources It looks at this. This is the current set of Relationships that it understands So if you tell it to extract a server it will automatically get the associated things It doesn't do attached volumes right now, but it does everything else on this list You see though that the relationship graph is is a tree and ansible is obviously a linear Sequential set of steps So I had to figure out how to serialize that tree and get all of the resources to be output in the right order So that you create your security group before you try to add rules to it and things like that And the way I did that so this is a little bit of the implementation here It's a Python 3 only tool and it uses a Generator function inside of Python and then it uses the call stack to actually do the serialization So instead of walking the graph myself I'm basically letting the Python interpreter do all of that stuff for me and then it builds a set of tasks and The export command just Generates all of the tasks in the order that they come out of the the resolver code and then so it has a list that then it Dumps that list to yaml and that's your bit your playbook All right, so I mentioned a few of the different resource types that it supports SSH keys if you have a key attached to a server That you created the server using that key it will automatically grab the public key for it security groups networks subnets It doesn't do I mentioned attached volumes right now In part because that's extremely disruptive you have to actually shut down the instance and detach the volume in order to do the snapshot so If you have the volume the instance already shut down and the volume detached then you can tell it to export that data But it doesn't do that automatically And I just haven't gotten to floating IPs and routers And I'm sure there's a bunch of other stuff in here that that people would be interested in exporting and moving that it doesn't do yet Okay, so I would like help with it if you're interested This is where you can find the code. It's in the open stack infrastructure But I do also accept pull requests on my github account the one that gets synced from the open stack infrastructure The pull requests will be closed automatically by the robot But if you apply them to my account then I'll do the merging for you if you're not set up to work with open stack infrastructure stuff right Okay, all right, so grab me around the conference or on Twitter if you have questions. Thanks All right This is spam apps. He does not spam you With apps Yes Anyways, this is Clint Byron and he's gonna talk about Answer turtles. All right, here we go. So this is not Anzi turtles all the way down by the way What am I? Yeah, all right. It'd be great, right? I was ready for some Anzi art, but I Don't know if open stack was ASCII turtles would have been even even simpler, but we'll work on more clouds So hi, I'm Clint Byron. I work for IBM as a cloud architect on a project called Bonnie CI Which is an attempt to bring Zool to to the masses somewhat and and some more things like that and today I'm gonna talk about how we use Ansible because I gotta actually tell you our team is a little bit Ansible crazy So if you like Ansible You probably don't like it as much as we do So first I'll explain a little more. What's Bonnie CI if you're wondering who that is. That's Anne Bonnie She's a pirate. We love pirates. We started a group in IBM called Pirate Cloud we were building some clouds and open stack using open stack and using a lot of pirate terminology and so when we When we finished that project Everybody said they really liked working with the open stack development infrastructure because we had a lot of people working not only in the upstream one But we built our own Downstream version with Garrett and Zool But we took a look at the problem. We thought how do we bring this to an even wider audience and so What we did was basically we take open sacks excellent Zool scheduler Which if you're not familiar with what Zool is I'll talk more about that tomorrow but we decided to take some community github patches and And then help finish Zool v3 which made Jim very happy and we're very happy to to work on that too One of the coolest features is if you're used to the way Zool works in open stack You have to go land patches in the project config repo But Zool v3 actually has in repo config. So if you're used to like the way Travis Works or some others you can actually just edit your own Jobs and change parameters, which is really cool and there are many other features that we needed as well we also added pirates because that's what we do and Beyond that I'm gonna leave the suspense hanging for tomorrow at 355 mr. 206 or just come ask me after we're done talking So so what what what do we actually use Ansible for you might think that's an easy answer But actually it's kind of it's kind of ridiculous So first when we decide we're gonna deploy some more Bonnie CI we provision our nodes using Ansible We use the most excellent OS modules, which Doug just referred to which are pretty amazing which talk to the open stack apis and when Once we're done with that we deploy all of our software on those nodes Using Ansible and all of our configuration as well One of the pieces of software to plan there is Ansible We also deploy Zool Which actually runs Ansible to test code And then we gate all of our code using Zool which runs Ansible to test our Ansible Which deploys a Zool which and I'm gonna stop because you see the hands That's how I'm feeling right now or it's you know for more elementary example just 20 go to 10 We actually in the hallway Jim, and I weren't sure when we stopped running Ansible but we use it profusely and The key there is just that What we found was that Ansible was sort of a gateway drug to more Ansible So so as we adopted it, you know, we a lot of us have Experienced with pop it or chef or anything like that, but we found that that That Ansible just kind of was an accelerant onto to all of our automation so After doing that for a while, I thought I could share some wisdom with you If I had candy I would throw it to anyone who can who can name the individual who made that quote Anybody shout it out All right imaginary candy for you So what have we learned One the OS modules are fantastic. Here's an example snippet it goes down further And you can see a link to it there of how we provision servers I think it's easy to read it makes sense and We don't have any trouble with this code. We actually have a an IBM Blue mix private cloud, which is if you remember blue box They rebranded as that and and this creates all of our all of our things in there There's actually a lot more OS calls for users Security groups everything we need, but we definitely find that those are solid. They work just install shade I think there was a presentation earlier where where where Paul showed it and it worked So we highly recommend that The other thing we've learned is This seems obvious, but code review and fully testing answerable deployments using an excellent testing tool hint hint Is an excellent idea? We've had a lot of success. You might see our Beautiful friends over at Travis are also mentioned there Part of that is that we want to know how Travis works because we feel like Bonnie is is a higher scale Different focused version, but we want to understand how the world uses it We found it's fairly useful, and it's a little redundant, but it doesn't usually cost us any extra time But what we have found is by by using github even though we love Garrett Who else loves Garrett? Alright, you should all be raising your hand someday. Hopefully Garrett will win but github is is fine and we use it for everything and And we use if you see check github there. There's a little Bonnie She actually merges all of our code and the other thing that we've kind of learned recently is that like we keep hearing about containers Kubernetes, and they're cool, and I bet Lars could teach me something about this But it's just we're having a hard time fitting it into our our sort of torrid love affair with Ansible Like it's just it feels like putting another truck on top So we want to do it. We think it's the right way to go There's a lot of benefits to using containers and and and and things like Kubernetes but we haven't actually done it and We we would love people to help us do that actually because we're out of resources And the cool thing is you can actually help us because all of our deployment is entirely open source We you can you can see all the code for our Ansible The only thing you won't see there are the actual secrets that make everything go So sort of and the model of OpenStack's info team We run an open infrastructure So we invite if you're interested in running Zool if you're interested in building another CI system if you want to run one behind your firewall and Contribute patches to make that easier. We're here and we would love to have your contribution so so That's actually all I have So I want to say thank you for listening to it and open up. We have two minutes for questions Hello, hello So Clint my understanding is that in bonus? Yeah, you have already the github integration going or I'm mistaken So another company, I think it's there called best data Sorry Good data good data. Sorry best data is entirely different thing good data wrote some patches and submitted them to Zool master branch and We actually merged those in and we're using those to test just to play with Zool before v3 and then Jesse Keating's on our team and he's actually porting those together with Jim to v3 and those should land in v3 Hopefully someday soon. It's a big take a questions. How we can expect to have that Merge, I mean, we're super interested in Ansible to use the github integration and so There's plenty of work to be done in the review queue for the features will be three branch. Okay message taken But yeah, I that's that's eminent I would say any other questions All right, well, thanks so much for listening to my little Ansible love of air and I'll give you the rest of the time Lars What does your shirt say? Ask me about see I smiley face and last but certainly not least is Lars and he's I'm sorry. I'm I'm French and I butchered saying Paul's last name. Hey people at say that I'm Robin Bergeson And there's not even an actual s in my name. So Sorry Lars Is that close? Great. Thank you so much. So my name is Lars. I work at Red Hat. I'm in the open-stack engineering group And as a kind of slide project, I'm also the cloud in it package maintainer This is also a CI story although not quite as exciting and automated as the previous one But still hopefully interesting So the goal I had as the package maintainer to cloud in it is to Test the package in its actual role when adding patches and producing new releases So cloud in it is a tool that performs initial system configuration of a server when it first boots up Typically in a cloud environment, although in some situations also for bare metal So I wanted to be able to take my new package Stick it on a server boot it up and then apply some tests of that server to make sure that everything was working as I expected So I have this all wired up through Jenkins Kicks off a Jenkins job and three things that clones three repositories to start with there's the package sources There is an ansible project Which is the playbooks that will set up the test environment and then there is the project that will actually run the tests on That server once it's created now the first step is creating packages and images. That's not exciting. We're just going to move on So before we can get the image into open stack We have to authenticate to open stack and you've probably heard this like at least twice today But I'm going to go through anyway because it's here There are so all the open stack modules support the OS client config library Which is a Python library for managing open stack credentials So there are at least three ways of providing authentication credentials to your ansible playbooks There is the environment variables that we all know and love that you've been working with for years Those are great. You can put literal values into your ansible playbooks which Seems crazy from a manageable manageability perspective once you get beyond a single playbook or you can use a clouds dot yaml file Which is really exciting that lets you store credentials for many cloud environments in a single file and The library will look for that file in several standard locations It'll look for in a user level directory so that You can have a common set of credentials that use for all of the stuff you're doing both with ansible And also with things like the open stack unified client which also uses the same library You can have credentials in your current directory Which is neat if you have different projects that are targeting different cloud environments and just changing directories You want that to change the cloud that you're targeting. That's also cool You can also have that in a system location Which if would expose the same credentials if one on the system. That's not a use case I'm currently taking advantage of right now, but I guess it's there if you want it and You've got your credentials you've got your image and now we need to send out to the cloud now I was going to lose this image, but it was interesting I was looking for a disc to represent a disc image and then I realized I haven't seen a disc myself in about 20 years So I use the Kiwi because that seemed to be just as representative these days so See see so we get the image into open stack with the OS image module and I'm not going to go through this in detail, but pretty typical with some sane defaults here This is in a role that is part of this larger project And so there's some sane defaults so you're not always having to specify the container format the image format But this pushes it up now I am targeting a couple different image formats just about everybody out there Rel sent off fedora Ubuntu Everybody gives you a standalone cloud image that you can download and boot into your open stack environment And it just works Then there is the triple O upstream CI environment, which I wanted to test against also and their tools Produce an image that requires an external kernel and RAM disk so with a whole bunch of conditionals in my ansible playbooks and a couple calls to the OS image module We can upload the kernel and the RAM disk first record those in variables And then one last call to OS image where we can provide the Properties that map that file system image to the appropriate kernel and RAM disk and now once this is complete regardless of what we started with We have an image in open stack that we can boot and test out and it will be awesome So we need to boot an image. Well, we need network first We need the subnet this goes with the network We need a router because we're going to need inbound access to that environment We need a security group to make sure that the SSH port is open. We need a floating IP address We need to boot the server associate the floating IP address wait for it to finish booting and then when we're all done with everything We need to tear it down again cleanly so that we don't litter our testing environment with the detritus from our test. I Started doing this with just the basic ansible OS modules So OS server OS network OS subnet and so on and it quickly got a little bit hairy There was a lot of repetitive work just to get the environment up and running and I wasn't happy with it The tear down was getting kind of ugly too So I realized I could leverage open stack heat open stacks own orchestration tool to try to make this process a little cleaner now heat orchestrates open stack resources of collections or resources that are related somehow It uses a declarative yaml syntax sounds awful familiar And it can instantiate resources in parallel, but it is aware of the dependencies dependencies between resources So it can be reasonably time efficient. We'll also making sure that things happen in the right order Ansible has a module called OS stack for interacting with the heat API You can provide that with a template to the yaml file that describes your heat stack and You can provide that with parameters which are inputs into that template now I'm not going to go into heat templates in detail, but I want to take a quick look at one because there are two things I want to highlight here. Let's make that oh there we go so Two parts here this beginning section is input parameters to the heat stack Those are values that are referenced elsewhere in the stack kind of like variables in Ansible we get down here to the resources section and There are resources for all of those things. I was just listing But there are two here that are really kind of interesting the first one here is called a weight condition a Weight condition is a heat resource that is not considered to be complete until it receives a rest notification and We are also providing a chunk of user data that we are delivering to clouded it right there and This user data includes a shell script which calls curl using a generated URL provided by heat when we deploy the stack That provides that notification to the weight condition now. What this means is when we deploy our Stack using the OS stack module. It starts up the server Passes the data to clouded it boots up cloud and it reads the shell script runs curl Notifies the weight condition and the heat stack complete completes and that means we have then returned control back to our Ansible playbook And we know at that point that the server booted correctly that clouded it ran correctly that it has correctly Configured the credentials will need to log in and perform tests to get the server So we are good to go and one step there I Record the interest so most of the open stack modules in Ansible give you useful information back And you can take that and you can record it in a variable extract bits of it I take all of it and dump it to a JSON file because that means I can run subsequent playbooks against the same stack without having to Do like introspection and call API's or recreate things, but it's neither here nor there Once we have the stack created we have our server We can add that server now to Ansible's inventory using the ad host module so we take some of the values that we got back from OS stack the server name in the IP address that we just deployed and we assign it to a host group and Now that is in our Ansible inventory and now that it's in the inventory we can run tests against it using another Ansible playbook I'm not going to look at that It's a lot of assert statements making sure that file systems were resized and files were created where we expected them to But once we're done This is the cool part cleanup is now basically a one-step operation I just say hey heat. I'm done with all those resources now. You can go ahead and delete them and In this example here I'm actually calling the open set command line to query for a list of stacks that match the prefix That I'm getting from Jenkins with the job ID because that way I can do clean up at the beginning of the task and leave Stuff floating around after the Jenkins job is complete so I can inspect it manually later but we can tell heat to delete all of those resources it cleans everything up and we are done and I thought that was kind of a neat way of Utilizing both the open-sec modules in Ansible as well as open stacks own orchestration tools to get a cleaner set up and tear down of a full test stack without having to rely on Statically configured resources beforehand and that is the end of my story. Thank you very much Hi for time I'm just curious how I did That's okay Are there any questions out there? I don't think we have any questions. Well, thank you all very much


Russia has reported 679 coronavirus-related deaths in the last 24 hours. It is the most confirmed in a single day since the pandemic began and the fifth day in a row it has set their record. The government also confirmed more than 25,000 new coronavirus cases nationwide, the most it has reported since early January. Officials blame the surge on the infectious Delta variant and indifferent demand for vaccinations. The capital, Moscow, is the worst-hit region, accounting for 7,624 of the Sunday's new cases. But it may have said the rate of vaccinations is picking up and that more than 2.7 million people have received at least one vaccine dose.